yangys
2025-09-17 ae2c3f847da927b6124e872d8d74c0457a1eea14
src/views/flow/components/TodolistLeft.vue
@@ -6,17 +6,22 @@
-->
<template>
    <basic-container>
        <!--'cureProgramTask', 固化编制不能添加文件-->
        <div class="tool" v-show="['programmingTask', 'repalceProgrammingTask','appendProgrammingTask'].includes(row.taskDefinitionKey)">
            <el-button type="primary" plain @click="addApp">添加文件
        <!--'cureProgramTask', 固化编制能添加文件0916-->
        <div class="tool" v-show="['programmingTask','cureProgramTask', 'replaceProgrammingTask','appendProgrammingTask'].includes(row.taskDefinitionKey)">
            <!--无固化的情况才显示该开关-->
            <el-switch v-if="row.variables.hasCuredProgram!=='Y'" v-model="programOnMachine" active-text="现场编制" inactive-text="工艺员编制" />
            &nbsp;
            <el-button type="primary" :disabled="programOnMachine" plain @click="addApp">添加文件
            </el-button>
        </div>
         <el-text type="danger" v-if="row.variables.curedLocked === 'Y'">固化程序已锁定,请谨慎使用。锁定原因:{{ remark }}</el-text>
         <el-text type="danger" v-if="row.processDefinitionKey === 'program-unlock'">程序已锁定,锁定原因:{{ remark }}</el-text>
         <el-text type="danger" v-if="row.variables.curedLocked === 'Y'">固化程序已锁定,请谨慎使用。锁定原因:{{ remark }}<br/></el-text>
         <el-text type="danger" v-if="row.processDefinitionKey === 'program-unlock'">程序已锁定,锁定原因:{{ remark }}<br/></el-text>
         <el-text type="primary" v-if="row.processDefinitionKey === 'program-unlock'"><br/>解锁原因:</el-text>
         <el-text type="warning">{{row.variables.unlockReason}}</el-text>
         <el-text type="danger" v-if="row.variables.hasCuredProgram==='Y' && row.variables.isProcessEditionSame=='N' && row.variables.cureProgramUseable==undefined">已固化程序工序版次不一致,派工版次:{{row.variables.processEdition}},已固化版次:{{row.variables.curedProcessEdition}}</el-text>
        <el-table :data="tableData" border @row-click="showContent" :row-style="{height:'20px'}" :cell-style="{padding:'0px'}" max-height="240" highlight-current-row>
            <!-- <el-table-column prop="machineCode" label="加工机床">
            </el-table-column> -->
         <el-text type="danger" v-if="row.variables.programOnMachine=='Y'">现场编制</el-text>
        <el-table :data="tableData" border @row-click="showContent" :row-style="{height:'20px'}" :cell-style="{padding:'0px'}" max-height="380" highlight-current-row>
           
            <el-table-column type="index" label="#" width="40" align="center" />
            <el-table-column prop="name" label="程序名称">
@@ -24,9 +29,17 @@
                    <div style="display: flex;align-items: center;">
                        <span style="margin-right: 8px;">{{ row.name }}</span>
                        <el-icon v-if="row.fileType === 'other'">
                            <el-tooltip class="box-item" effect="light" content="其他文件"  placement="right">
                            <FolderOpened />
                            </el-tooltip>
                        </el-icon>
                        <img v-else src="./app.jpg" alt="" width="16" height="16">
                        <el-icon v-if="row.fileType === 'program'">
                            <el-tooltip class="box-item" effect="light" content="程序文件"  placement="right">
                                <Tickets/>
                            </el-tooltip>
                        </el-icon>
                        <!--<img v-else src="./app.jpg" alt="" width="16" height="16">-->
                    </div>
                </template>
            </el-table-column>
@@ -34,7 +47,7 @@
                <template #default="scope">
                    <!--'cureProgramTask', 固化编制,不能删除和上传-->
                    <a style="color: blue;margin-right: 4px;cursor: pointer;font-size: 12px;"
                        v-show="['programmingTask', 'repalceProgrammingTask','appendProgrammingTask'].includes(row.taskDefinitionKey)"
                        v-show="['programmingTask', 'replaceProgrammingTask','appendProgrammingTask'].includes(row.taskDefinitionKey)"
                        type="text" size="small" @click.stop="del(scope.$index, scope.row)">删除</a>
                    <a style="color: blue;cursor: pointer;font-size: 12px;margin-right: 4px;" type="text" size="small"
                        @click.stop="downloadFile(scope.$index, scope.row)">下载</a>
@@ -66,7 +79,7 @@
            </el-collapse-item>
        </el-collapse>
        -->
        <h4>程序内容</h4>
        <h5>程序内容</h5>
        <div v-html="appContent" class="app-content">
        </div>
        <el-dialog title="程序选择" v-model="appDialog" width="400" v-if="appDialog">
@@ -84,7 +97,7 @@
</template>
<script>
import { getAppList,getFileData, getSelectedAppList, getContent, removeAtt,queryLockRemark } from '@/api/flow/todolist';
import { getFileData, getSelectedAppList, getContent, removeAtt,queryLockRemark } from '@/api/flow/todolist';
import { exportBlob } from '@/api/common';
import { getToken } from '@/utils/auth';
import NProgress from 'nprogress';
@@ -111,6 +124,7 @@
            codeDiffFileName1: '回传版本',
            codeDiffFileName2: '下发版本',
            showContentId: '',
            programOnMachine:false,//是否现场编制
            attForm: {
                att: '',
                fileType: 'program'
@@ -266,10 +280,21 @@
                    this.$message.error('获取已选程序失败');
                    return;
                } else {
                    this.tableData = res.data.data || [];
                    this.tableData = this.sortTable(res.data.data || []);
                }
                // this.$emit('selection-change',this.tableData)
            })
        },
        sortTable(data) {
           data.sort(function(a,b){
                if(a.program === b.program){//如果program相同,按照name的降序
                    //return a.name - b.name
                    return a.name.localeCompare(b.name)
                }else{
                    return b.program - a.program
                }
            });
            return data;
        },
        addApp() {
            this.appDialog = true;
@@ -284,12 +309,6 @@
            this.selectionList = list;
        },
        onLoad(page, params = {}) {
            const query = {}
            getAppList(page.currentPage, page.pageSize, Object.assign(query, params)).then(res => {
                const data = res.data.data;
                this.page.total = data.total;
                this.appData = data.records;
            });
        },
        add() {
            console.log('add')
@@ -346,6 +365,7 @@
<style lang="scss" scoped>
.tool {
    margin-top:0px;
    text-align: right;
    margin-bottom: 10px;
}