123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- <template>
- <div class="mod-user">
- <!-- <el-breadcrumb class="divi2" separator-class="el-icon-arrow-right" v-if="this.$router.currentRoute.path!='/home'">
- <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
- <el-breadcrumb-item>{{this.$router.currentRoute.name}}</el-breadcrumb-item>
- </el-breadcrumb> -->
- <!-- 面包屑和下划线 -->
- <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:template:save')" type="primary" @click="addOrUpdateHandle()">新建模板</el-button>
- <el-button v-if="isAuth('algs:template:delete')" type="danger" @click="deleteHandle()"
- :disabled="dataListSelections.length <= 0">批量删除</el-button>
- </el-form-item>
- <el-form-item>
- <el-input v-model="dataForm.tmpName" 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-form-item>
- <!-- 筛选框 -->
- <!-- <el-form-item>
- <el-tag>筛选:</el-tag>
- <el-select v-model="statustag" placeholder="状态" size="mini" style="width: 130px;" @change="getDataList2(statustag)">
- <el-option v-for="data in statusunique" :key="data" :label="data != '0' ? '正常' :'禁用'" :value="data" >
- </el-option>
- </el-select>
- </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="tmpId" 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="tmpName" 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="uid" 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="remark" header-align="center" align="center" label="备注">
- </el-table-column> -->
- <!-- <el-table-column prop="status" header-align="center" align="center" label="状态">
- <template slot-scope="scope">
- <el-tag v-if="scope.row.status === 0" size="small" type="danger">禁用</el-tag>
- <el-tag v-else size="small">正常</el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="uid" header-align="center" align="center" width="180" label="创建时间">
- </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:template:list')" type="text" size="small" @click="userwatch(scope.row.tmpId)">查看
- </el-button>
- <el-button v-if="isAuth('algs:template:update')" type="text" size="small"
- @click="addOrUpdateHandle(scope.row.tmpId)">修改</el-button>
- <el-button v-if="isAuth('algs:template:delete')" type="text" size="small" @click="deleteHandle(scope.row.tmpId)">
- 删除</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>
- import AddOrUpdate from "./templs-add-or-update";
- import Watch from "./templs-watch";
- import { MessageBox } from 'element-ui'
- import { Message } from "element-ui"
- export default {
- data() {
- return {
- dataForm: {
- tmpName: "",
- },
- dataList: [],
- roleList: [],
- pageIndex: 1,
- pageSize: 10,
- totalPage: 0,
- dataListLoading: false,
- dataListSelections: [],
- addOrUpdateVisible: false,
- newWatchVisible: false,
- classificationtag: "",
- classification: []
- };
- },
- components: {
- AddOrUpdate,
- Watch
- },
- activated() {
- this.getDataList();
- },
- methods: {
- // 获取数据列表
- getDataList() {
- this.dataListLoading = true;
- this.classificationtag = '';
- 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/templs/list"),
- method: "get",
- params: this.$http.adornParams({
- page: this.pageIndex,
- limit: this.pageSize,
- tmpname: this.dataForm.tmpName,
- }),
- }).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;
- });
- },
- //筛选查询
- getDataList2() {
- this.dataListLoading = true;
- if(this.classificationtag===''){
- this.classificationtag=null;
- }
- this.$http({
- url: this.$http.adornUrl("/algs/templs/list"),
- method: "get",
- params: this.$http.adornParams({
- page: this.pageIndex,
- limit: this.pageSize,
- tmpname: this.dataForm.tmpName,
- // 增加status参数用于筛选查询
- classificationtag: this.classificationtag
- }),
- }).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;
- });
- },
- //去重
- 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 tmpId = id
- ? [id]
- : this.dataListSelections.map((item) => {
- return item.tmpId;
- });
- MessageBox.confirm(
- `确定对[id=${tmpId.join(",")}]进行[${id ? "删除" : "批量删除"}]操作?`,
- "提示",
- {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- }
- )
- .then(() => {
- this.$http({
- url: this.$http.adornUrl("/algs/templs/delete"),
- method: "post",
- data: this.$http.adornData(tmpId, 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>
- <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>
|