From 2bea732496b4f5051233ed94e206160992351596 Mon Sep 17 00:00:00 2001 From: yuxc <yuxc@vci-tech.com> Date: 星期三, 15 一月 2025 11:02:06 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue | 303 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 303 insertions(+), 0 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue new file mode 100644 index 0000000..b8a8c09 --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue @@ -0,0 +1,303 @@ +<template> + <!--娴佺▼妯℃澘瀹氫箟--> + <basic-container> + <div> + 娴佺▼鍒嗙被锛� + <el-select v-model="tempType" :clearable="true" placeholder="璇烽�夋嫨" size="small" + style="width: 300px;margin-right: 20px;" + @change="tempTypeChange"> + <el-option + v-for="item in tempTypeData" + :key="item.oid" + :label="item.name" + :value="item.oid"> + </el-option> + </el-select> + 娴佺▼妯℃澘鍚嶇О锛� + <el-input size="small" v-model="tempName" style="width: 300px;margin-right: 10px;"></el-input> + <el-button icon="el-icon-search" plain size="small" style="margin-right: 40px;" type="primary" + @click="searchData"> + 鏌ヨ + </el-button> + </div> + <div> + <el-main> + <avue-crud + ref="userCrud" + :data="tableData" + :option="option" + :table-loading="tableLoading" + @on-load="getTableList" + @refresh-change="getTableList" + @selection-change="selectionChange" + @row-click="rowClickHandler" + > + <template slot="menuLeft" slot-scope="scope"> + <el-button v-if="permissionList.addBtn" class="button-custom-icon" plain size="small" type="primary" + @click="addHandler"> + <icon-show :name="permissionList.addBtn.source"></icon-show> + 澧炲姞 + </el-button> + <el-button v-if="permissionList.downloadImportTemplateBtn" class="button-custom-icon" plain size="small" + type="primary" @click="downloadTemplateHandler"> + <icon-show :name="permissionList.downloadImportTemplateBtn.source"></icon-show> + 涓嬭浇瀵煎叆妯℃澘 + </el-button> + <el-button v-if="permissionList.importBtn" class="button-custom-icon" plain size="small" type="primary" + @click="uploadHandler"> + <icon-show :name="permissionList.importBtn.source"></icon-show> + 瀵煎叆 + </el-button> + <el-button v-if="permissionList.exportBtn" class="button-custom-icon" plain size="small" type="primary" + @click="downloadHandler"> + <icon-show :name="permissionList.exportBtn.source"></icon-show> + 瀵煎嚭 + </el-button> + </template> + + <template slot="menu" slot-scope="scope"> + <el-button v-if="permissionList.editBtn" size="small" type="text" + @click="editBtnClick(scope.row)"> + <icon-show :name="permissionList.editBtn.source"></icon-show> + 缂栬緫 + </el-button> + <el-button v-if="permissionList.delBtn" size="small" type="text" + @click="rowDeleteHandler(scope.row)"> + <icon-show :name="permissionList.delBtn.source"></icon-show> + 鍒犻櫎 + </el-button> + <el-button size="small" type="text" @click.stop="stopUserHandler(scope.row)"> + <span v-if="scope.row.status === 0 && permissionList.stopBtn" style="color: #fa3434;display: flex"> + <icon-show :name="permissionList.stopBtn.source"></icon-show> + 鍋滅敤 + </span> + <span v-if="scope.row.status === 1 && permissionList.actionBtn" style="color: #55b61d;display: flex"> + <icon-show :name="permissionList.actionBtn.source"></icon-show> + 鍚敤 + </span> + </el-button> + </template> + + </avue-crud> + <!-- 鍒涘缓缂栬緫鑷畾涔夊璇濇 --> + <el-dialog + v-dialogDrag + v-loading="dialogLoading" + :title="dialogType === 'add' ? ' 鍒涘缓' : '缂栬緫'" + :visible.sync="dialogVisible" + append-to-body="true" + class="avue-dialog" + width="1000px" + @close="dialogClose" + > + <span slot="footer" class="dialog-footer"> + <el-button size="small" type="primary" @click="rowSaveHandler">纭� 瀹�</el-button> + <el-button size="small" @click="dialogVisible = false">鍙� 娑�</el-button> + </span> + </el-dialog> + </el-main> + + <el-aside width="35%"> + <div></div> + </el-aside> + </div> + </basic-container> +</template> + +<script> +import {mapGetters} from "vuex"; +import basicOption from "@/util/basic-option"; +import {getTypeList} from "@/api/processTemplate/type"; +import {getProcessTempList,saveProcessTemp,updateProcessTemp,deleteProcessTemp,downloadTemplate,download} from "@/api/processTemplate/define"; +import func from "@/util/func"; + +export default { + name: "index", + data(){ + return { + tempType:'', + tempName:'', + tempTypeData:[], + form:{}, + tableLoading: false, + tableData: [], + currentRow:null, + selectionList: [], + } + }, + computed: { + ids() { + let ids = []; + this.selectionList.forEach(ele => { + ids.push(ele.id); + }); + return ids.join(","); + }, + ...mapGetters(["permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false), + delBtn: this.vaildData(this.permission[this.$route.query.id].DELETE, false), + editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false), + exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false), + importBtn: this.vaildData(this.permission[this.$route.query.id].IMPORT, false), + downloadImportTemplateBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOADFILE, false), + stopBtn: this.vaildData(this.permission[this.$route.query.id].FREEZE, false), + actionBtn: this.vaildData(this.permission[this.$route.query.id].UNFREZE, false), + }; + }, + option(){ + return { + ...basicOption, + addBtn:false, + editBtn:false, + delBtn:false, + calcHeight: -60, + align:'left', + headerAlign:'center', + menuWidth:160, + dialogMenuPosition: 'right', + dialogWidth:600, + column: [ + { + label: '娴佺▼妯℃澘鍚嶇О', + prop: 'name' + },{ + label: '鐗堟湰', + prop: 'desc' + },{ + label: '鐘舵��', + prop: 'status' + }] + } + } + }, + created() { + getTypeList().then(res => { + this.tempTypeData = res.data.data; + }) + }, + methods:{ + getTableList(){ + this.tableLoading = true; + getProcessTempList({tempType:this.tempType,tempName:this.tempName}).then(res => { + this.tableData = res.data.data; + this.tableLoading = false; + }) + }, + //娴佺▼鍒嗙被閫夋嫨 + tempTypeChange(val){ + this.getTableList(); + }, + searchData(){ + this.getTableList(); + }, + // 鏂板 + saveHandler(row, done, loading) { + saveProcessTemp(row).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + done(); + } + }).catch(err => { + loading() + }); + }, + + handleEdit(row,index){ + this.$refs.crud.rowEdit(row, index); + }, + + // 缂栬緫 + updateHandler(row, index, done, loading) { + updateProcessTemp(row).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + done() + } + }).catch(err => { + loading() + }); + }, + + // 鍒犻櫎 + handleDel(row,index) { + let params = { + ids: row.id + } + + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鏁版嵁鍚楋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + deleteProcessTemp(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + } + }); + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + //閫夋嫨鐨勮 + selectionChange(list) { + this.selectionList = list; + }, + + // 琛屽崟閫� + rowClickHandler(row) { + func.rowClickHandler( + row, + this.$refs.crud, + this.lastIndex, + (newIndex) => { + this.lastIndex = newIndex; + }, + () => { + this.selectionList = [row]; + } + ); + }, + + // 瀵煎嚭 + downloadHandler() { + if (this.selectionList.length <= 0) { + this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹繘琛屽鍑�'); + return; + } + + download({enumNames: this.ids}).then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + }) + }, + + // 涓嬭浇瀵煎叆妯℃澘 + downloadTemplateHandler() { + downloadTemplate().then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('涓嬭浇鎴愬姛'); + }).catch(err => { + }) + }, + + //瀵煎叆 + uploadHandler() { + this.$refs.upload.visible = true; + } + } +} +</script> + +<style scoped> + +</style> -- Gitblit v1.9.3