From 73cbe36fc0d51af44ccac1016f869f9bf08ab827 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期五, 04 七月 2025 19:12:19 +0800 Subject: [PATCH] update --- src/views/flow/components/TodolistLeft.vue | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 162 insertions(+), 0 deletions(-) diff --git a/src/views/flow/components/TodolistLeft.vue b/src/views/flow/components/TodolistLeft.vue new file mode 100644 index 0000000..9201af8 --- /dev/null +++ b/src/views/flow/components/TodolistLeft.vue @@ -0,0 +1,162 @@ +<!-- + * @Date: 2025-07-01 20:45:15 + * @LastEditors: gaoshp + * @LastEditTime: 2025-07-01 23:50:05 + * @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> + <el-table :data="tableData" border @row-click="showContent"> + <el-table-column prop="code" label="缂栧彿"> + </el-table-column> + <el-table-column prop="name" label="绋嬪簭鍚嶇О"> + </el-table-column> + <el-table-column prop="name" label="宸ュ簭鍚嶇О"> + </el-table-column> + </el-table> + <h4>绋嬪簭鍐呭</h4> + <div v-html="appContent" class="app-content"> + </div> + <el-dialog title="绋嬪簭閫夋嫨" v-model="appDialog" width="50%" v-if="appDialog"> + <avue-crud :option="optionApp" v-model="form" v-model:page="page" ref="crud" :data="appData" + @current-change="currentChange" @size-change="sizeChange" + @on-load="onLoad" @selection-change="selectionChange"> + <template #search="{ }"></template> + <template #search-menu="{ }"></template> + </avue-crud> + <div slot="footer" class="dialog-footer"> + <el-button @click="appDialog = false">鍙� 娑�</el-button> + <el-button type="primary" @click="add">纭� 瀹�</el-button> + </div> + </el-dialog> + </basic-container> +</template> + +<script> +import { getAppList,getSelectedAppList,getContent } from '@/api/flow/todolist'; +export default { + props: { + row: { + type: Object, + } + }, + data() { + return { + tableData: [],//宸查�夌▼搴� + appContent: '',//绋嬪簭鍐呭 + appDialog: false, + form: {}, + page: { + page: 1, + size: 10, + total: 0, + }, + appData: [], + selectionList: [], + optionApp: { + menu: false, + gridBtn: false, + addBtn: false, + editBtn: false, + delBtn: false, + columnBtn: false, + refreshBtn: false, + searchShowBtn: false, + tip: false, + searchShow: false, + dialogWidth: '60%', + border: true, + index: true, + selection: true, + menuWidth: 100, + dialogClickModal: false, + column: [ + { + label: 'machineCode', + prop: '璁惧缂栧彿', + }, + { + label: '绋嬪簭鍚嶇О', + prop: 'name', + }, + { + label: '宸ュ簭鍚嶇О', + prop: 'processName', + }, + ], + }, + } + }, + 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.onLoad(this.page); + }, + methods: { + addApp() { + this.appDialog = true; + }, + currentChange(currentPage) { + this.page.currentPage = currentPage; + }, + sizeChange(pageSize) { + this.page.pageSize = pageSize; + }, + selectionChange(list) { + 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') + this.tableData = this.tableData.concat(this.selectionList.filter(item => { + return !this.tableData.some(existingItem => existingItem.id === item.id); + })); + this.appDialog = false; + this.$emit('selection-change',this.tableData) + }, + showContent (row, column, event) { + getContent(row.id).then(res => { + if(res.data.code === 200) { + this.appContent = res.data.data + } else { + this.appContent = '绋嬪簭鍐呭鍔犺浇澶辫触' + } + }) + } + }, +} +</script> + +<style lang="scss" scoped> +.tool { + text-align: right; + margin-bottom: 10px; +} + +.dialog-footer { + text-align: center; +} +.app-content { + background-color: #fffee1; + padding: 10px; + min-height: 100px; +} +</style> \ No newline at end of file -- Gitblit v1.9.3