From 76aee3bfa5a1e703fde16408d92b71c4fe2cdeb8 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 08 九月 2025 20:28:22 +0800
Subject: [PATCH] 增加过程卡号显示
---
src/views/flow/donelist.vue | 313 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 288 insertions(+), 25 deletions(-)
diff --git a/src/views/flow/donelist.vue b/src/views/flow/donelist.vue
index 7c664b6..2cd3bb5 100644
--- a/src/views/flow/donelist.vue
+++ b/src/views/flow/donelist.vue
@@ -9,31 +9,196 @@
<avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud"
@search-change="searchChange" @search-reset="searchReset" @current-change="currentChange"
@size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" >
+ <template #menu="scope">
+ <el-button type="primary" text size="default" @click.stop="handleView(scope.row, scope.index)">鏌ョ湅</el-button>
+ <el-button type="primary" :disabled="scope.row.processIsFinished==='true' || (scope.row.currentTaskKeys.toLowerCase().indexOf('program')==-1 && scope.row.currentTaskKeys.toLowerCase().indexOf('useable')==-1)" v-if="permission.takeback_button" text size="default" @click.stop="handleTakeBack(scope.row, scope.index)">鍙栧洖</el-button>
+ <el-button type="primary" :disabled="scope.row.processIsFinished==='true' || scope.row.currentTaskKeys.toLowerCase().indexOf('program')>-1" v-if="permission.withdraw_button" text size="default" @click.stop="handleWithdraw(scope.row, scope.index)">鎾ゅ洖</el-button>
+ </template>
+
</avue-crud>
+ <el-dialog title="鏌ョ湅璇︽儏" v-model="dialogVisible" width="60%">
+ <avue-form v-model="viewRow" :option="viewFormOption" readonly class="viewRowForm"></avue-form>
+ <el-table :data="tableData" style="width: 100%">
+ <el-table-column prop="assigneeName" label="鎵ц浜�" />
+ <el-table-column prop="taskName" label="浠诲姟鍚嶇О" />
+ <el-table-column prop="comment" label="鎵规敞" />
+ <el-table-column prop="createTime" label="寮�濮嬫椂闂�" />
+ <el-table-column prop="endTime" label="瀹屾垚鏃堕棿" />
+ </el-table>
+ </el-dialog>
</basic-container>
</template>
<script>
-import { getDoneList} from '@/api/flow/todolist';
+import { getDoneList,todoChangeNotify} from '@/api/flow/todolist';
import { mapGetters } from 'vuex';
export default {
data() {
return {
+ tableData: [],
+ query:{},
+ viewFormOption: {
+ emptyBtn: false,
+ submitBtn: false,
+ menuBtn: false,
+
+ labelWidth: 100,
+ span: 8,
+ column: [
+ {
+ label: '娴佺▼绫诲瀷',
+ prop: 'processDefinitionKey',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.processDefinitionKey)
+ },
+ },
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'createTime',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.createTime)
+ },
+ },
+ {
+ label: '鏍囬',
+ prop: 'variables.title',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.title)
+ }
+ },
+ {
+ label: '娴佺▼鍚嶇О',
+ prop: 'processDefinitionName',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.processDefinitionName)
+ }
+ },
+ {
+ label: '鎵规鍙�',
+ prop: 'variables.craftEdition',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.craftEdition || '');
+ }
+ },
+ {
+ label: '宸ュ簭鍙�',
+ prop: 'processNo',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.processNo || '');
+ }
+ },
+ {
+ label: '宸ュ簭鍚嶇О',
+ prop: 'processName',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.processName || '');
+ }
+ },
+ {
+ label: '宸ュ簭鐗堟',
+ prop: 'processEdition',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.processEdition || '');
+ }
+ },
+ {
+ label: '闆剁粍浠跺彿',
+ prop: 'drawingNo',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.drawingNo || '');
+ }
+ },
+ {
+ label: '浠诲姟杞﹂棿',
+ prop: 'workshop',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.workshop || '');
+ }
+ },
+ {
+ label: '杩囩▼鍗″彿',
+ prop: '',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.processCard || '');
+ }
+ },
+ {
+ label: '鍥惧彿',
+ prop: 'drawingNo',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.drawingNo)
+ }
+ },
+ {
+ label: '浜у搧鍨嬪彿',
+ prop: 'productModel',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.productModel)
+ }
+ },
+ {
+ label: '鏈哄簥',
+ prop: 'machineCode',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.machineCode)
+ }
+ },
+ {
+ label: '鍒涘缓浜�',
+ prop: 'startUserName',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.startUserName)
+ }
+ },
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'processCreateTime',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.processCreateTime)
+ }
+ },
+ {
+ label: '褰撳墠鑺傜偣',
+ prop: 'taskName',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.taskName)
+ }
+ },
+ {
+ label: '璁″垝鍔犲伐鏃堕棿',
+ prop: 'planStartTime',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.planStartTime || '');
+ }
+ },
+ {
+ label: '绋嬪簭鍖呭悕',
+ prop: 'programPackageName',
+ render: ({ row }) => {
+ return h('p',{'class': 'margin0'}, row?.variables?.programPackageName || '');
+ }
+ },
+ ],
+ },
+ viewRow: {},
+ dialogVisible: false,
loading: false,
option: {
+ rowKey: "taskId",
addBtn: false,
editBtn: false,
delBtn: false,
columnBtn: false,
tip: false,
searchShow: true,
+ searchEnter:true,
searchMenuSpan: 6,
dialogWidth: '60%',
border: true,
index: true,
selection: false,
// viewBtn: true,
- menu: false,
- menuWidth: 100,
+ menu: true,
+ menuWidth: 120,
column: [
{
label: '鍏抽敭瀛�',
@@ -42,21 +207,31 @@
search: true,
searchType: 'input',
hide: true,
+ },
+ {
+ label: '鐘舵��',
+ prop: 'status',
+ //cleerable:true,
+ search: true,
+ type: 'select',
dicData: [
{
- label: '娑夊瘑缃戠▼搴�',
- value: 1,
+ label:'杩涜涓�',
+ value:'1'
},
{
- label: '宸ユ帶缃戣溅搴婄▼搴�',
- value: 2,
+ label:'宸茬粨鏉�',
+ value:'2'
},
],
+ labelKey: 'label',
+
+ span: "8"
},
{
label: '鏍囬',
prop: '',
- width: 100,
+ width: 200,
render: ({ row }) => {
return h('p',
{
@@ -100,7 +275,7 @@
},
{
label: '鍒涘缓鏃堕棿',
- width: 200,
+ width: 100,
prop: 'processCreateTime',
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
@@ -112,7 +287,7 @@
},
{
label: '寮�濮嬫椂闂�',
- width: 200,
+ width: 100,
prop: 'createTime',
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
@@ -124,11 +299,12 @@
},
{
label: '缁撴潫鏃堕棿',
- width: 200,
+ width: 100,
prop: 'endTime',
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ sortable:true,
search: false,
searchRange: true,
searchSpan: 8,
@@ -136,7 +312,7 @@
},
{
label: '浠诲姟鍚嶇О',
- width: 200,
+ width: 100,
prop: 'taskName',
},
{
@@ -156,6 +332,83 @@
}
},
methods: {
+ handleView(row) {
+ console.log(row,1111)
+ this.viewRow = {...row};
+ axios({
+ url: '/blade-mdm/flow/mgr/process-trace',
+ method: 'get',
+ params: {processInstanceId: row.processInstanceId}
+ }).then(
+ res => {
+ this.tableData = res.data.data;
+ });
+ this.dialogVisible = true;
+ },
+ handleTakeBack(row){
+ //缁勯暱鍙栧洖
+ this.$confirm('纭瑕佸彇鍥炲悧锛�', '', {
+ confirmButtonText: this.$t('submitText'),
+ cancelButtonText: this.$t('cancelText'),
+ type: 'warning',
+ }).then(() => {
+ axios({
+ url: '/blade-mdm/flow/mgr/takeback',
+ method: 'get',
+ params: {processInstanceId: row.processInstanceId}
+ }).then(res => {
+ if(res.data.code !== 200) {
+ this.$message.error(res.data.msg);
+ return;
+ }
+ this.$message.success('鎿嶄綔鎴愬姛');
+
+ todoChangeNotify();
+
+ this.refreshChange();
+ }).catch(err => {
+ console.error(err);
+ //done()
+ });
+
+ }).catch(() => {
+ console.log('>>>>>>')
+ // this.$message.info('宸插彇娑堟搷浣�');
+ //done();
+ });
+ },
+ handleWithdraw(row) {
+ //console.log(row,row.processInstanceId)
+ this.$confirm('纭瑕佹挙鍥炲悧锛�', '', {
+ confirmButtonText: this.$t('submitText'),
+ cancelButtonText: this.$t('cancelText'),
+ type: 'warning',
+ }).then(() => {
+ axios({
+ url: '/blade-mdm/flow/mgr/withdraw',
+ method: 'get',
+ params: {processInstanceId: row.processInstanceId}
+ }).then(res => {
+ if(res.data.code !== 200) {
+ this.$message.error(res.data.msg);
+ return;
+ }
+ this.$message.success('鎿嶄綔鎴愬姛');
+
+ todoChangeNotify();
+
+ this.refreshChange();
+ }).catch(err => {
+ console.error(err);
+ //done()
+ });
+
+ }).catch(() => {
+ console.log('>>>>>>')
+ // this.$message.info('宸插彇娑堟搷浣�');
+ //done();
+ });
+ },
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
@@ -166,34 +419,29 @@
console.log('searchChange', params);
params.createTimeBegin = params?.processCreateTime?.[0] || '';
params.createTimeEnd = params?.processCreateTime?.[1] || '';
- console.log(params);
- // data = {
- // createTimeBegin: dayjs(params.createTimeBegin).isValid() ? dayjs(params.createTimeBegin).format('YYYY-MM-DD') : '',
- // createTimeEnd: dayjs(params.createTimeEnd).isValid() ? dayjs(params.createTimeEnd).format('YYYY-MM-DD') : '',
- // keyword: params.keyword || ''
- // }
+
data = {
createTimeBegin: params.createTimeBegin,
createTimeEnd: params.createTimeEnd,
- keyword: params.keyword || ''
+ keyword: params.keyword || '',
+ status: params.status || 0
}
this.query = data
this.onLoad(this.page, data);
done();
},
searchReset () {
- this.loading = true;
this.form = {};
- this.getList();
+ this.getDoneList();
},
sizeChange() {
- this.loading = true;
- this.getList();
+
+ this.getDoneList();
},
refreshChange() {
this.onLoad(this.page, this.query);
},
- onLoad(page, params = {}) {
+ onLoad(page, params = {},done) {
const query = {
...this.query,
// category: params.category ? flowCategory(params.category) : null,
@@ -204,15 +452,30 @@
console.error('鏃ユ湡鏍煎紡鍖栭敊璇�', error);
}
- this.loading = true;
+ //this.loading = true;
getDoneList(page.currentPage, page.pageSize, Object.assign(query, params)).then(res => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
+ if(done){
+ done();
+ }
});
},
+ },
+ computed: {
+
+ ...mapGetters(['userInfo', 'permission']),
}
}
</script>
+<style lang="scss">
+.margin0 {
+ margin: 0
+}
+.viewRowForm .el-form-item--default {
+ margin-bottom: 0
+}
+</style>
--
Gitblit v1.9.3