123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- <!-- -->
- <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-input v-model="dataForm.missName" 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>
- <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="approvalId" 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="missName" header-align="center" align="center" label="算法名称">
- </el-table-column>
- <el-table-column prop="approvalStatus" header-align="center" align="center" label="状态">
- <template slot-scope="scope">
- <el-tag v-if="scope.row.approvalStatus === 0" size="small">待审批</el-tag>
- <el-tag v-else-if="scope.row.approvalStatus === 1" size="small" type="success">已通过</el-tag>
- <el-tag v-else-if="scope.row.approvalStatus === -1" size="small" type="danger">已拒绝</el-tag>
- <el-tag v-else size="small" type="success">已结束</el-tag>
- </template>
- </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="applyTime" header-align="center" align="center" width="180" label="申请时间"
- :formatter="applyTimeFormat">
- </el-table-column>
- <el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
- <template slot-scope="scope">
- <el-button type="text" size="small" @click="approve(scope.row.approvalId)" :disabled="scope.row.approvalStatus!=0?true:false"
- >通过
- </el-button>
- <el-button type="text" size="small" :disabled="scope.row.approvalStatus!=0?true:false"
- @click="refuse(scope.row.approvalId)">
- 拒绝</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>
- <PythonKafkaTmp v-if="pythonKafkaVisible" ref="pythonKafkaTmp" @refreshDataList="getDataList"></PythonKafkaTmp>
- </div>
- </template>
- <script>
- //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
- //例如:import 《组件名称》 from '《组件路径》';
- import PythonKafkaTmp from "../alg/python-kafka-tmp.vue";
- import { MessageBox } from 'element-ui'
- import { Message } from "element-ui"
- export default {
- //import引入的组件需要注入到对象中才能使用
- data() {
- return {
- dataForm: {
- missName: "",
- },
- dataList: [],
- pageIndex: 1,
- pageSize: 10,
- totalPage: 0,
- dataListLoading: false,
- dataListSelections: [],
- addOrUpdateVisible: false,
- pythonKafkaVisible: false,
- classificationtag: "",
- classification: [],
- form: null,
- };
- },
- components: {
- PythonKafkaTmp
- },
- activated() {
- this.getDataList();
- },
- methods: {
- // 获取数据列表
- getDataList() {
- this.dataListLoading = true;
- this.classificationtag = '';
- this.form = null;
- 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/approval/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;
- });
- },
- //筛选查询
- getDataList2() {
- this.dataListLoading = true;
- if(this.classificationtag===''){
- this.classificationtag=null;
- }
- this.$http({
- url: this.$http.adornUrl("/algs/approval/list"),
- method: "get",
- params: this.$http.adornParams({
- page: this.pageIndex,
- limit: this.pageSize,
- misslName: this.dataForm.missName,
- // 增加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;
- });
- },
- onDialogClose(){
- console.log("查看完成");
- },
- stateFormat(row, column) {
- if (row.form === 1) {
- return "传统算法";
- } else {
- return "智能算法";
- }
- },
- applyTimeFormat(row, column){
- if (row.applyTime === null) {
- return "-";
- } else{
- return row.applyTime;
- }
- },
- //通过申请
- approve(id){
- MessageBox.confirm('是否通过该发布申请?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.$http({
- url:this.$http.adornUrl('/algs/approval/approve'),
- method:'get',
- params:this.$http.adornParams({
- approvalId:id
- }),
- }).then(({data})=>{
- if(data&&data.code===0){
- Message({
- type: 'success',
- message: '已同意',
- });
- }else{
- Message.error('审批失败');
- }
- this.getDataList();
-
- });
-
- }).catch(() => {
- Message({
- type: 'info',
- message: '已取消'
- });
- });
-
- },
- //拒绝申请
- refuse(id){
- MessageBox.confirm('是否拒绝该发布申请?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.$http({
- url:this.$http.adornUrl('/algs/approval/refuse'),
- method:'get',
- params:this.$http.adornParams({
- approvalId:id
- }),
- }).then(({data})=>{
- if(data&&data.code===0){
- Message({
- type: 'success',
- message: '已拒绝',
- });
- }else{
- Message.error('审批失败');
- }
- this.getDataList();
-
- });
-
- }).catch(() => {
- Message({
- type: 'info',
- message: '已取消'
- });
- });
-
- },
- //去重
- 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;
- }
- .warningButton{
- color: #F56C6C;
- }
- </style>
|