123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- <!-- -->
- <template>
- <div class=''>
- <el-breadcrumb class="divi2" separator-class="el-icon-arrow-right">
- <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
- <el-breadcrumb-item>算法部署</el-breadcrumb-item>
- </el-breadcrumb>
- <el-divider class="divi"></el-divider>
- <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
- <el-form-item>
- <el-button v-if="isAuth('algs:model:save')" type="primary" @click="addOrUpdateHandle()">上传算法</el-button>
- <el-button v-if="isAuth('algs:model:delete')" type="danger" @click="deleteHandle()"
- :disabled="dataListSelections.length <= 0">批量删除</el-button>
- </el-form-item>
- <el-form-item>
- <el-input v-model="dataForm.modelName" placeholder="请输入模板名" clearable
- @keyup.enter.native="pageIndex = 1;getDataList()"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button @click="pageIndex = 1;getDataList()">查询</el-button>
- </el-form-item>
- <el-form-item>
- <el-tag>筛选:</el-tag>
- <el-select v-model="classificationtag" clearable placeholder="类别" size="mini" style="width: 130px;"
- @change="pageIndex = 1;getDataList2()">
- <el-option v-for="data in classification" :key="data" :label="data" :value="data">
- </el-option>
- </el-select>
- <el-select v-model="form" clearable placeholder="形式" size="mini" style="width: 130px;"
- @change="pageIndex = 1;getDataList2()">
- <el-option label='干扰算法' value='1'>
- </el-option>
- <el-option label='抗干扰算法' value='2'>
- </el-option>
- </el-select>
- <!-- <el-form-item>
- <el-button @click="testUpload()">测试上传</el-button>
- </el-form-item> -->
- </el-form-item>
- </el-form>
- <el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
- style="width: 100%;">
- <el-table-column type="selection" header-align="center" align="center" width="50">
- </el-table-column>
- <!-- <el-table-column prop="modelId" header-align="center" align="center" width="80" label="算法ID">
- </el-table-column> -->
- <el-table-column label="序号" header-align="center" align="center" width="80" type="index" :index='(index)=>{return (index+1) + (this.pageIndex-1)*this.pageSize}'> </el-table-column>
- <el-table-column prop="modelName" header-align="center" align="center" label="算法名称">
- </el-table-column>
- <el-table-column prop="categoryName" header-align="center" align="center" label="分类">
- </el-table-column>
- <el-table-column prop="username" header-align="center" align="center" label="创建人">
- </el-table-column>
- <el-table-column prop="form" header-align="center" align="center" label="形式" :formatter="stateFormat">
- </el-table-column>
- <el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
- <template slot-scope="scope">
- <el-button v-if="isAuth('algs:model:list')" type="text" size="small" @click="userwatch(scope.row.modelId)">查看
- </el-button>
- <!-- <el-button v-if="isAuth('algs:model:update')" type="text" size="small"
- @click="addOrUpdateHandle(scope.row.modelId)">修改</el-button> -->
- <el-button v-if="isAuth('algs:model:delete')" type="text" size="small"
- @click="deleteHandle(scope.row.modelId)">
- 删除</el-button>
- </template>
- </el-table-column>
- </el-table>
- <el-pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex"
- :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" :total="totalPage"
- layout="total, sizes, prev, pager, next, jumper">
- </el-pagination>
- <!-- 弹窗, 新增 / 修改 -->
- <AddOrUpdate v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></AddOrUpdate>
- <Watch v-if="newWatchVisible" ref="newWatch" @refreshDataList="getDataList"></Watch>
- </div>
- </template>
- <script>
- //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
- //例如:import 《组件名称》 from '《组件路径》';
- import AddOrUpdate from "./models-add-or-update";
- import Watch from "./models-watch";
- import { MessageBox } from 'element-ui'
- import { Message } from "element-ui"
- export default {
- //import引入的组件需要注入到对象中才能使用
- data() {
- return {
- dataForm: {
- modelName: "",
- },
- dataList: [],
- pageIndex: 1,
- pageSize: 10,
- totalPage: 0,
- dataListLoading: false,
- dataListSelections: [],
- addOrUpdateVisible: false,
- newWatchVisible: false,
- classificationtag: "",
- classification: [],
- form: null,
- };
- },
- components: {
- AddOrUpdate,
- Watch,
- },
- activated() {
- this.getDataList();
- },
- methods: {
- // 获取数据列表
- getDataList() {
- this.dataListLoading = true;
- this.classificationtag = '';
- this.form = '';
- this.$http({
- url: this.$http.adornUrl("/category/select"),
- method: "get",
- }).then(({ data }) => {
- this.classification = this.unique(data.list);
- });
- this.$http({
- url: this.$http.adornUrl("/algs/models/list"),
- method: "get",
- params: this.$http.adornParams({
- page: this.pageIndex,
- limit: this.pageSize,
- modelName: this.dataForm.modelName,
- }),
- }).then(({ data }) => {
- if (data && data.code === 0) {
- this.dataList = data.page.list;
- this.totalPage = data.page.totalCount;
- this.statusunique = this.unique(data.page.list);
- } else {
- this.dataList = [];
- this.totalPage = 0;
- }
- this.dataListLoading = false;
- });
- },
- //测试上传
- testUpload(){
- this.$http({
- url: this.$http.adornUrl("/algs/models/testUpload"),
- method: "get",
- params: this.$http.adornParams({
- }),
- }).then(({ data }) => {
- });
- },
- //筛选查询
- getDataList2() {
- this.dataListLoading = true;
- if(this.classificationtag===''){
- this.classificationtag=null;
- }
- if(this.form===''){
- this.form=null;
- }
- this.$http({
- url: this.$http.adornUrl("/algs/models/list"),
- method: "get",
- params: this.$http.adornParams({
- page: this.pageIndex,
- limit: this.pageSize,
- modelName: this.dataForm.modelName,
- // 增加status参数用于筛选查询
- classificationtag: this.classificationtag,
- form: this.form
- }),
- }).then(({ data }) => {
- if (data && data.code === 0) {
- this.dataList = data.page.list;
- this.totalPage = data.page.totalCount;
- } else {
- this.dataList = [];
- this.totalPage = 0;
- }
- this.dataListLoading = false;
- });
- },
- onDialogClose(){
- console.log("查看完成");
- },
- stateFormat(row, column) {
- if (row.form === 1) {
- return "干扰算法";
- } else {
- return "抗干扰算法";
- }
- },
- //去重
- unique(arr) {
- var ss = [];
- for (var i = 0; i < arr.length; i++) {
- ss[i] = arr[i].categoryName;
- }
- return Array.from(new Set(ss));
- },
- // 每页数
- sizeChangeHandle(val) {
- this.pageSize = val;
- this.pageIndex = 1;
- this.getDataList();
- },
- // 当前页
- currentChangeHandle(val) {
- this.pageIndex = val;
- this.getDataList();
- },
- // 多选
- selectionChangeHandle(val) {
- this.dataListSelections = val;
- },
- // 查看
- userwatch(id) {
- this.newWatchVisible = true;
- this.$nextTick(() => {
- this.$refs.newWatch.init(id);
- });
- },
- // 新增 / 修改
- addOrUpdateHandle(id) {
- this.addOrUpdateVisible = true;
- this.$nextTick(() => {
- this.$refs.addOrUpdate.init(id);
- });
- },
- // 删除
- deleteHandle(id) {
- var modelId = id
- ? [id]
- : this.dataListSelections.map((item) => {
- return item.modelId;
- });
- MessageBox.confirm(
- `确定对[id=${modelId.join(",")}]进行[${id ? "删除" : "批量删除"}]操作?`,
- "提示",
- {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- }
- )
- .then(() => {
- this.$http({
- url: this.$http.adornUrl("/algs/models/delete"),
- method: "post",
- data: this.$http.adornData(modelId, false),
- }).then(({ data }) => {
- if (data && data.code === 0) {
- Message({
- message: "操作成功",
- type: "success",
- duration: 1500,
- onClose: () => {
- this.getDataList();
- },
- });
- this.pageIndex = 1;
- getDataList();
- } else {
- Message.error(data.msg);
- }
- });
- })
- .catch(() => {});
- },
- },
- };
- </script>
- </script>
- <style scoped>
- .divi {
- display: block;
- height: 1px;
- width: 100%;
- margin: 24px 0;
- background-color: #dcdfe6;
- position: relative;
- }
- .divi2 {
- display: block;
- height: 1px;
- width: 100%;
- position: relative;
- }
- .sele {
- border: 1px solid #409eff;
- border-radius: 5px;
- box-sizing: border-box;
- padding: 5px 0px;
- margin: 10px;
- }
- </style>
|