1
李喆(开发组)
2025-08-11 32d659432b0e6627758faf39380fc569e56b9799
src/views/flow/components/TodolistLeft.vue
@@ -1,22 +1,25 @@
<!--
 * @Date: 2025-07-01 20:45:15
 * @LastEditors: gaoshp
 * @LastEditTime: 2025-07-07 19:51:14
 * @LastEditTime: 2025-08-06 20:40:36
 * @FilePath: /mdmweb/src/views/flow/components/TodolistLeft.vue
-->
<template>
    <basic-container>
        <div class="tool" v-show="row.taskDefinitionKey === 'programmingTask'">
            <el-button type="primary" @click="addApp">添加程序</el-button>
        <div class="tool" v-show="['programmingTask','cureProgramTask','repalceProgrammingTask'].includes(row.taskDefinitionKey)">
            <avue-form :option="attOption"
             v-model="attForm"
             :upload-after="uploadAfter" class="att-box"></avue-form>
        </div>
        <el-table :data="tableData" border @row-click="showContent" max-height="200">
            <el-table-column prop="machineCode" label="加工机床">
            </el-table-column>
            <!-- <el-table-column prop="machineCode" label="加工机床">
            </el-table-column> -->
         <el-table-column type="index" label="#" width="40" align="center"/>
            <el-table-column prop="name" label="程序名称">
            </el-table-column>
            <el-table-column fixed="right" label="操作" width="100">
            <template #default="scope" v-show="row.taskDefinitionKey === 'programmingTask'">
                <el-button type="text" size="small" @click.stop="del(scope.$index,scope.row)">删除</el-button>
            <el-table-column fixed="right" label="操作" width="60" align="center">
            <template #default="scope" >
                <el-button v-show="['programmingTask','cureProgramTask','repalceProgrammingTask'].includes(row.taskDefinitionKey)" type="text" size="small" @click.stop="del(scope.$index,scope.row)">删除</el-button>
            </template>
            </el-table-column>
        </el-table>
@@ -39,7 +42,7 @@
</template>
<script>
import { getAppList,getSelectedAppList,getContent } from '@/api/flow/todolist';
import { getAppList,getSelectedAppList,getContent,removeAtt} from '@/api/flow/todolist';
export default {
    props: {
        row: {
@@ -48,6 +51,28 @@
    },
    data() {
        return {
            showContentId: '',
            attForm: {
                att: '',
            }, //程序上传表单
            attOption: {
                submitBtn: false,
                emptyBtn: false,
                menu: false,
                column: [
                    {
                        label: '添加程序',
                        prop: 'att',
                        type: 'upload',
                        multiple: true,
                        action: '/api/blade-mdm/flow/mgr/ncupload',
                        span: 24,
                        data: {
                            processInstanceId: this.row.processInstanceId
                        },
                    }
                ]
            }, //程序上传
            tableData: [],//已选程序
            appContent: '',//程序内容
            appDialog: false,
@@ -94,19 +119,33 @@
        }
    },
    mounted() {
        console.log(this.row,'row')
        getSelectedAppList(this.row.processInstanceId).then(res => {
            if (res.data.code !== 200) {
                this.$message.error('获取已选程序失败');
                return;
            } else {
                this.appData = res.data
            }
            this.$emit('selection-change',this.tableData)
        })
        this.getAttList();
        this.onLoad(this.page);
    },
    methods: {
        uploadAfter(res, done, loading, column) {
            if (res.code === 200) {
                this.getAttList();
                this.$message.success('上传成功');
                this.attForm.att = '';
                return done();
            } else {
                console.log(res)
                this.$message.warning(res.msg || '上传失败');
                done()
            }
        },
        getAttList () {
            getSelectedAppList(this.row.processInstanceId).then(res => {
                if (res.data.code !== 200) {
                    this.$message.error('获取已选程序失败');
                    return;
                } else {
                    this.tableData = res.data.data || [];
                }
                // this.$emit('selection-change',this.tableData)
            })
        },
        addApp() {
            this.appDialog = true;
        },
@@ -136,6 +175,11 @@
            this.$emit('selection-change',this.tableData)
        },
        showContent (row, column, event) {
            if(!row?.id) {
                this.showContentId = ''
                return this.appContent = '';
            }
            this.showContentId = row.id
            getContent(row.id).then(res => {
                if(res.data.code === 200) {
                    this.appContent = res.data.data
@@ -145,8 +189,18 @@
            })
        },
        del (index,row) {
            this.tableData = this.tableData.filter(item => item.id !== row.id);
            this.$emit('selection-change',this.tableData)
            if(row.id === this.showContentId) {
                this.showContentId = '';
                this.showContent(null, null, null);
            }
            removeAtt(row.id).then(res => {
                if(res.data.code === 200) {
                    this.$message.success('删除成功');
                    this.getAttList();
                } else {
                    this.$message.error('删除失败');
                }
            })
        }
    },
}
@@ -163,9 +217,21 @@
}
.app-content {
    background-color: #fffee1;
    padding: 10px;
    padding: 10px 30px;
    min-height: 100px;
    overflow: auto;
    max-height: 400px;
    white-space: pre-wrap;
}
</style>
<style lang="scss">
    .att-box {
        .el-form-item--default {
            margin-bottom: 0;
        }
        .avue-form__menu--center {
            display: none;
        }
    }
</style>