From 9bb18084093bdc0dabb614420d09e54c710d9b46 Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期二, 28 十一月 2023 14:34:45 +0800 Subject: [PATCH] feat: 出入库明细对接 --- admin-web/src/views/stock/procure/purchaseOrder/index.vue | 2 admin-web/src/views/departmentitem/itemret/returnNote/index.vue | 2 admin-web/src/views/stock/transfer/transferissue/index.vue | 2 admin-web/src/utils/settingIplatform.js | 22 --- admin-web/src/views/stock/transfer/transferApplication/index.vue | 2 /dev/null | 45 --------- admin-web/src/views/stock/procure/purchaseOrder/edit.vue | 6 - admin-web/src/utils/stockType.js | 2 admin-web/public/index.html | 3 admin-web/src/views/departmentitem/itemscr/scrapping/index.vue | 2 admin-web/src/views/stock/accessStock/outbound/index.vue | 71 +++++++------ admin-web/src/views/stock/scrap/itemScrapping/index.vue | 2 admin-web/src/components/mySearch/SearchItem.vue | 13 + admin-web/src/views/stock/accessStock/outboundDetails/index.vue | 86 ++++++++++++---- admin-web/src/views/departmentitem/itemdis/distribution/index.vue | 2 admin-web/public/static/config.js | 17 --- 16 files changed, 123 insertions(+), 156 deletions(-) diff --git a/admin-web/public/index.html b/admin-web/public/index.html index 729a200..1172a30 100644 --- a/admin-web/public/index.html +++ b/admin-web/public/index.html @@ -11,11 +11,10 @@ <title><%= webpackConfig.name %></title> </head> <body> + <script type="text/javascript" src="<%= BASE_URL %>static/config.js"></script> <script src="<%= BASE_URL %>static/tinymce4.7.5/tinymce.min.js"></script> <script src="<%= BASE_URL %>static/js/jquery.min.js"></script> <script src="<%= BASE_URL %>static/js/reconnecting-websocket.js"></script> - <script src="<%= BASE_URL %>static/js/niuniucapture.js"></script> - <script src="<%= BASE_URL %>static/js/capturewrapper.js"></script> <script src="https://map.qq.com/api/gljs?v=1.exp&key=PGNBZ-XZ7C3-MPE34-OF2VP-7MRH6-BOFUG"></script> <div id="app"></div> <!-- built files will be auto injected --> diff --git a/admin-web/public/static/config.js b/admin-web/public/static/config.js index 78c156c..2595dcf 100644 --- a/admin-web/public/static/config.js +++ b/admin-web/public/static/config.js @@ -1,25 +1,12 @@ -// 璇锋眰鎺ュ彛鍦板潃 濡傛灉娌℃湁閰嶇疆鑷姩鑾峰彇褰撳墠缃戝潃璺緞 -const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`; -const VUE_APP_WS_URL = - process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname; - const SettingIplatform = { // 鏈嶅姟鍣ㄥ湴鍧� - // 鏈嶅姟鍣ㄥ湴鍧� - httpUrl: VUE_APP_API_URL, // 涓婁紶璺緞 ftpUrl: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� - // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, -// 鎺ュ彛璇锋眰鍦板潃 -// apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡 - // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙� + // 鎺ュ彛璇锋眰鍦板潃 apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙� // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� -// apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, - // socket杩炴帴 - wsSocketUrl: VUE_APP_WS_URL, - debug: true //璋冭瘯寮�鍏� true鏃朵細杈撳嚭璇锋眰鏃ュ織 + debug: false //璋冭瘯寮�鍏� true鏃朵細杈撳嚭璇锋眰鏃ュ織 }; export default SettingIplatform; diff --git a/admin-web/src/components/mySearch/SearchItem.vue b/admin-web/src/components/mySearch/SearchItem.vue index fa2580b..1240b54 100644 --- a/admin-web/src/components/mySearch/SearchItem.vue +++ b/admin-web/src/components/mySearch/SearchItem.vue @@ -4,7 +4,7 @@ <el-input :type="item.inputType || 'text'" v-if="item.type === 'text'" - :placeholder="item.placeholder || ''" + :placeholder="item.placeholder || '璇疯緭鍏�'" @change="(e) => inputChange(e)" :clearable="true" v-model="val" @@ -15,6 +15,7 @@ <el-cascader v-model="val" v-if="item.type === 'cascader'" + :placeholder="item.placeholder || '璇烽�夋嫨'" :options="item.options" :props="item.optionsConfig.props||{ checkStrictly: true,emitPath: false,value: 'id' }" :show-all-levels="false" @@ -26,7 +27,7 @@ <!-- 涓嬫媺--> <el-select v-if="item.type === 'select'" - :placeholder="item.placeholder || ''" + :placeholder="item.placeholder || '璇烽�夋嫨'" v-model="val" filterable :multiple="item.multiple || false" @@ -54,7 +55,7 @@ <!--鏃堕棿--> <el-time-select v-if="item.type === 'time-picker'" - :placeholder="item.placeholder || ''" + :placeholder="item.placeholder || '璇烽�夋嫨'" v-model="val" :clearable="true" style="width: 150px" @@ -66,6 +67,7 @@ v-model="val" type="year" :clearable="true" + :placeholder="item.placeholder || '璇烽�夋嫨'" style="width: 150px" :value-format="item.format?item.format:'yyyy'" @change="(v) => panelChange(v, 'yyyy')" @@ -76,6 +78,7 @@ v-model="val" type="month" :clearable="true" + :placeholder="item.placeholder || '璇烽�夋嫨'" style="width: 150px" :value-format="item.format?item.format:'yyyyMM'" @change="(v) => panelChange(v, 'yyyy-MM')" @@ -86,6 +89,7 @@ v-model="val" type="date" :clearable="true" + :placeholder="item.placeholder || '璇烽�夋嫨'" style="width: 150px" :value-format="item.format?item.format:'yyyyMMdd'" @change="(v) => panelChange(v, 'yyyy-MM-dd')" @@ -96,6 +100,7 @@ v-model="val" type="datetime" :clearable="true" + :placeholder="item.placeholder || '璇烽�夋嫨'" style="width: 150px" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" @@ -106,7 +111,7 @@ v-if="item.type === 'datetimerange-picker'" v-model="val" style="width: 378px" - :placeholder="item.placeholder || ''" + :placeholder="item.placeholder || '璇烽�夋嫨'" type="datetimerange" :pickerOptions='pickerOptions' :disabled="item.disabled" diff --git a/admin-web/src/utils/settingIplatform.js b/admin-web/src/utils/settingIplatform.js index 3e3b152..f568428 100644 --- a/admin-web/src/utils/settingIplatform.js +++ b/admin-web/src/utils/settingIplatform.js @@ -1,24 +1,10 @@ -// 璇锋眰鎺ュ彛鍦板潃 濡傛灉娌℃湁閰嶇疆鑷姩鑾峰彇褰撳墠缃戝潃璺緞 -const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`; -const VUE_APP_WS_URL = - process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname; - +import config from '../../public/static/config.js' const SettingIplatform = { - // 鏈嶅姟鍣ㄥ湴鍧� - httpUrl: VUE_APP_API_URL, // 涓婁紶璺緞 - ftpUrl: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� - // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, -// 鎺ュ彛璇锋眰鍦板潃 -// apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡 - // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙� - // apiBaseURL: 'http://172.16.60.175:8083/lowConsum',//寮�鍙� - apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙� - // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� -// apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, - // socket杩炴帴 - wsSocketUrl: VUE_APP_WS_URL, + ftpUrl: config.ftpUrl, + // 鎺ュ彛璇锋眰鍦板潃 + apiBaseURL: config.apiBaseURL, }; export default SettingIplatform; diff --git a/admin-web/src/utils/stockType.js b/admin-web/src/utils/stockType.js index e721978..16a5eef 100644 --- a/admin-web/src/utils/stockType.js +++ b/admin-web/src/utils/stockType.js @@ -1,6 +1,6 @@ function stockType(row) { let result = ''; - let arr = ['閲囪喘鍏ュ簱', '璋冩嫧', '鍏朵粬鍑哄簱', '閮ㄩ棬鍒嗗彂', '鎶ュ簾鍑哄簱', '閮ㄩ棬鐗╁搧鍥為��浠撳簱', '鐗╁搧鐩樼偣']; + let arr = ['閲囪喘鍏ュ簱', '璋冩嫧', '鍏朵粬鍑哄簱', '閮ㄩ棬鍒嗗彂', '鎶ュ簾鍑哄簱', '鐗╁搧閫�鍥�', '鐗╁搧鐩樼偣']; if (row.businessType == 7) { if (row.thisType == 1) { result = '鐩樼泩鍏ュ簱'; diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/index.vue b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue index d94c697..64cf780 100644 --- a/admin-web/src/views/departmentitem/itemdis/distribution/index.vue +++ b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue @@ -13,7 +13,7 @@ <my-button name="鐗╁搧鍒嗗彂" @click="handleAdd" site="tools" size="medium" icon="el-icon-edit-outline" /> <my-button name="瀵煎叆" @click="importSetting.dialogShow = true" site="tools" size="medium" /> </div> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> + <div :style="{ 'overflow-y': 'auto', height: `calc(100vh - 320px)` }" v-loading="loading"> <el-row v-if="list.length" class="card" :gutter="5"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/index.vue b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue index 9c9e512..a910caf 100644 --- a/admin-web/src/views/departmentitem/itemret/returnNote/index.vue +++ b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue @@ -12,7 +12,7 @@ <div class="table-tool-bar" style="margin-bottom: 15px;"> <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" /> </div> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> + <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> <el-row v-if="list.length" class="card" :gutter="5"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> diff --git a/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue b/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue index 77fadac..d5a05bc 100644 --- a/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue +++ b/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue @@ -12,7 +12,7 @@ <div class="table-tool-bar" style="margin-bottom: 15px;"> <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" /> </div> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> + <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> <el-row v-if="list.length" class="card" :gutter="5"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> diff --git a/admin-web/src/views/projectConfig/buildPlan/detail.vue b/admin-web/src/views/projectConfig/buildPlan/detail.vue deleted file mode 100644 index e215bb9..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/detail.vue +++ /dev/null @@ -1,142 +0,0 @@ -<template> - <win-lg :title="setting.title" @close="close" :width="'800px'"> - <el-table - v-loading="loading" - border - height="calc(100vh - 400px)" - :span-method="spanMethod" - :data="tableData" - style="width: 100%"> - <el-table-column - prop="stageName" - align="center" - label="闃舵"/> - <el-table-column - prop="nodeName" - align="center" - label="鑺傜偣"/> - <el-table-column - prop="nodeTimeStart" - align="center" - label="鑷」鐩紑濮嬬n澶�" - width="130"/> - <el-table-column - prop="nodeTimeDays" - align="center" - label="鎸佺画澶╂暟" - width="80"/> - <el-table-column - align="center" - label="瀹屾垚鍚庢彁閱�" - width="95"> - <template slot-scope="{row}"> - {{ row.completeNotifyStatus === 1 ? '鏄�' : '鍚�' }} - </template> - </el-table-column> - <el-table-column - align="center" - label="鎻愰啋鑺傜偣" - width="240"> - <template slot-scope="{row,$index}"> - <div>闃舵锛歿{ row.notifyStage.join("銆�") }}</div> - <div>鑺傜偣锛歿{ row.notifyNode.join("銆�") }}</div> - </template> - </el-table-column> - <el-table-column - align="center" - label="涓存湡棰勮" - width="80"> - <template slot-scope="{row}"> - {{ row.warnNeed === 1 ? '鏄�' : '鍚�' }} - </template> - </el-table-column> - <el-table-column - align="center" - label="闄勪欢蹇呬紶" - width="80"> - <template slot-scope="{row}"> - {{ row.fileNeed === 1 ? '鏄�' : '鍚�' }} - </template> - </el-table-column> - </el-table> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - </div> - </win-lg> -</template> - -<script> -import winLg from '@/components/win/win-lg' -import {getStageNode} from "@/api/projectConfig/buildPlanNode"; -import myButton from "@/components/myButton/myButton"; - -export default { - name: 'detail', - components: {winLg, myButton}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - tableData: [], - spanArr: [], - pos: 0 - } - }, - mounted() { - this.loading = true - getStageNode({id: this.setting.id}).then(res => { - this.loading = false - this.tableData = res - this.getSpanArr(res) - }).catch(() => { - this.loading = false - }) - }, - methods: { - close() { - this.$emit('close') - }, - spanMethod({row, column, rowIndex, columnIndex}) { - if (columnIndex === 0) { - const rowspan = this.spanArr[rowIndex] - const colspan = rowspan > 0 ? 1 : 0 - return { - rowspan, //琛� - colspan //鍒� - }; - } - }, - getSpanArr(data) { - this.spanArr = []; - for (let i = 0; i < data.length; i++) { - if (i === 0) { - this.spanArr.push(1); - this.pos = 0; - } else { - // 鍒ゆ柇褰撳墠鍏冪礌涓庝笂涓�涓厓绱犳槸鍚︾浉鍚� - if (data[i].id === data[i - 1].id && data[i].id) { - this.spanArr[this.pos] += 1; - this.spanArr.push(0); - } else { - this.spanArr.push(1); - this.pos = i; - } - } - } - }, - } -} -</script> - -<style scoped> - -</style> diff --git a/admin-web/src/views/projectConfig/buildPlan/edit.vue b/admin-web/src/views/projectConfig/buildPlan/edit.vue deleted file mode 100644 index 6087c95..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/edit.vue +++ /dev/null @@ -1,143 +0,0 @@ -<template> - <win-sm :title="setting.title" @close="close" :width="'800px'"> - <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> - <el-form-item label="璁″垝绫诲瀷" prop="planTypeCode"> - <el-select v-model="formData.planTypeCode" placeholder="" clearable style="width: 100%"> - <el-option - v-for="item in options" - :key="item.dict_code" - :label="item.dict_label" - :value="item.dict_code"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="璁″垝鍚嶇О" prop="projectName"> - <el-input v-model="formData.projectName" placeholder="" clearable maxlength="32" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="缂栧彿" prop="projectCode"> - <el-input v-model="formData.projectCode" placeholder="" clearable maxlength="32" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-radio-group v-model="formData.status"> - <el-radio :label="1" border>鍚敤</el-radio> - <el-radio :label="0" border>绂佺敤</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="澶囨敞" prop="remark"> - <el-input - v-model="formData.remark" - type="textarea" - :rows="3" - maxlength="200" - show-word-limit - /> - </el-form-item> - </el-form> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - </win-sm> -</template> - -<script> -import winSm from '@/components/win/win-sm' -import myButton from '@/components/myButton/myButton' -import * as api from "@/api/projectConfig/buildPlan"; -import {getDicts} from "@/api/system/dict/data"; - -export default { - name: 'edit', - components: {winSm, myButton}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - options: [], - formData: { - planTypeCode: '', - projectName: '', - projectCode: '', - status: 1, - remark: '', - }, - rules: { - planTypeCode: [ - {required: true, message: '璇烽�夋嫨璁″垝绫诲瀷', trigger: 'blur'}, - ], - projectName: [ - {required: true, message: '璇疯緭鍏ヨ鍒掑悕绉�', trigger: 'blur'}, - ], - projectCode: [ - {required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur'}, - ] - } - } - }, - created() { - this.loading = true - this.getInfo() - this.getPlanType() - }, - methods: { - getPlanType() { - getDicts('PLAN_TYPE').then(res => { - this.options = res - }) - }, - getInfo() { - this.title = this.setting.title - if (this.setting.id != null) { - // 鏌ヨ鏁版嵁 - api.getDetail({id: this.setting.id}).then(res => { - this.loading = false - this.formData = Object.assign(this.formData, res) - }) - }else{ - this.loading = false - } - }, - close() { - this.formData = { - planTypeCode: '', - projectName: '', - projectCode: '', - status: 1, - remark: '', - } - this.$emit('close') - }, - save() { - this.$refs.ruleForm.validate((valid) => { - if (valid) { - const params = Object.assign({}, this.formData) - this.loading = true - api[params.id?'upd':'add'](params).then(res => { - this.loading = false - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }).catch(()=>{ - this.loading = false - }) - } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') - } - }) - } - } -} -</script> diff --git a/admin-web/src/views/projectConfig/buildPlan/index.vue b/admin-web/src/views/projectConfig/buildPlan/index.vue deleted file mode 100644 index 31c9c5d..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/index.vue +++ /dev/null @@ -1,210 +0,0 @@ -<template> - <div class="app-container"> - <el-card class="box-card" shadow="never"> - <div class="filter-container" style="margin-bottom: 10px"> - <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> - </div> - <!--鍒楄〃--> - <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> - </el-card> - <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> - <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" @search="search"></detail> - <nodeChoose v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeChoose> - </div> -</template> - -<script> -import MyTableV2 from '@/components/myTable/myTableV2'; -import SettingIplatform from '@/utils/settingIplatform'; -import items from './items'; -import edit from './edit' -import detail from "@/views/projectConfig/buildPlan/detail"; -import nodeChoose from './nodeChoose/index' -import {del, updStatus} from "@/api/projectConfig/buildPlan"; - -export default { - components: {MyTableV2, edit,detail,nodeChoose}, - data() { - return { - // 鎼滅储鏉′欢 - items: items, - filterFrom: { - projectName: '', - projectCode: '', - planTypeCode: '', - status: '1', - }, - //鏂板缂栬緫 - editSetting: { - title: '', - id: '', - show: false, - }, - //璇︽儏 - detailSetting: { - title: '闃舵鑺傜偣棰勮', - id: '', - show: false, - }, - //鑺傜偣璁剧疆 - nodeSetting: { - title: '鑺傜偣閫夋嫨', - stageId: '', - show: false, - }, - // 琛ㄦ牸鏁版嵁 - table: { - showIndex: true, // 鏄惁鏄剧ず搴忓彿 - expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 - url: SettingIplatform.apiBaseURL + '/pc/p/temp/project/list', // 璇锋眰鍦板潃 - // 宸ュ叿鏉� - tools: { - columnsCtrl: { - // 鍒楁帶鍒舵寜閽� - show: false, - }, - generalExport: { - // 閫氱敤瀵煎嚭鎸夐挳 - show: false, - }, - // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [ - { - name: '鏂板', - click: () => { - this.showAdd(null); - }, - }, - ], - }, - // 鍒椾俊鎭� - columns: [ - { - title: '妯℃澘鍚嶇О', field: 'projectName', align: 'left', - formatter: (row) => { - return { - value: row.projectName, - type: 'primary', - click: () => { - // 鐐瑰嚮浜嬩欢 - this.shoDetail(row.id); - }, - } - } - }, - {title: '缂栧彿', field: 'projectCode', align: 'left', width: 200}, - {title: '璁″垝绫诲瀷', field: 'planTypeName', align: 'left', width: 300}, - { - field: 'status', - title: '鐘舵��', - align: 'center', - width: 80, - switch: (row) => { - return { - value: row.status === 1, // 寮� - label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� - click: () => { - // 鐐瑰嚮浜嬩欢 - this.updState(row); - }, - }; - }, - }, - ], - // 鎿嶄綔淇℃伅 - operation: { - show: true, // 鏄剧ず鎿嶄綔鍒� - width: '200', // 鍒楀 - attr: [ - { - title: '缂栬緫', - events: (row) => { - this.showAdd(row.id); - }, - }, - { - title: '鑺傜偣閫夋嫨', - type: 'success', - events: (row) => { - this.showNode(row.id); - }, - }, - ], - }, - paging: { - show: false, // 鏄剧ず鍒嗛〉 - // 鍒嗛〉淇℃伅 - page: { - small: false, - pageNum: 1, - pageSize: 10, - total: 0, - }, - }, - }, - }; - }, - mounted() { - }, - methods: { - // 鏌ヨtable鍒楄〃 - search(pageNum) { - if (pageNum != undefined) { - this.$refs.myTable.search(pageNum); - } else { - this.$refs.myTable.search(); - } - }, - filterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params); - this.search(); - }, - //娣诲姞銆佺紪杈� - showAdd(id) { - let title = '娣诲姞'; - if (id != null) { - title = '缂栬緫'; - } - this.editSetting.id = id; - this.editSetting.title = title; - this.editSetting.show = true; - }, - updState(row) { - let text = row.status === 0 ? "鍚敤" : "绂佺敤"; - this.$modal.confirm('纭瑕�' + text + '"' + row.projectName + '"鍚楋紵').then(() => { - let status = row.status === 1 ? 0 : 1 - updStatus({ - id: row.id, - status - }).then(res => { - if (res) { - row.status = row.status === 1 ? 0 : 1 - this.$modal.msgSuccess(text + "鎴愬姛"); - } - }) - }) - }, - showNode(id) { - this.nodeSetting.stageId = id; - this.nodeSetting.show = true; - }, - shoDetail(id) { - this.detailSetting.id = id; - this.detailSetting.show = true; - }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - this.$confirm('鏄惁纭鍒犻櫎"' + row.stageName + '"闃舵锛�', { - type: 'warning' - }).then(() => { - del({id: row.id}).then(res => { - this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - this.search() - }) - }) - }, - }, -}; -</script> - -<style scoped></style> diff --git a/admin-web/src/views/projectConfig/buildPlan/items.js b/admin-web/src/views/projectConfig/buildPlan/items.js deleted file mode 100644 index 2b060c9..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/items.js +++ /dev/null @@ -1,48 +0,0 @@ -import SettingIplatform from "@/utils/settingIplatform"; - -export default [ - { - type: 'text', - dataIndex: 'projectName', - label: '妯℃澘鍚嶇О', - placeholder: '璇疯緭鍏�', - defaultValue: '' - }, - { - type: 'text', - dataIndex: 'projectCode', - label: '妯℃澘缂栧彿', - placeholder: '璇疯緭鍏�', - defaultValue: '' - }, - { - type: 'select', - dataIndex: 'planTypeCode', - label: '璁″垝绫诲瀷', - placeholder: '璇烽�夋嫨', - defaultValue: '', - options: [], - optionsConfig: { - label: 'dict_label', - value: 'dict_code', - url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/PLAN_TYPE' - } - }, - { - type: 'select', - dataIndex: 'status', - label: '鐘舵��', - placeholder: '璇烽�夋嫨', - defaultValue: '1', - options: [ - { - label: '鍚敤', - value: '1' - }, - { - label: '绂佺敤', - value: '0' - } - ] - } -] diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue deleted file mode 100644 index 836143c..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue +++ /dev/null @@ -1,117 +0,0 @@ -<template> - <win-sm :title="setting.title" @close="close" :width="'800px'"> - <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> - <el-form-item label="闃舵鍚嶇О" prop="nodeName"> - <el-input v-model="formData.nodeName" clearable maxlength="32" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="灞曠ず椤哄簭" prop="sort"> - <el-input-number v-model="formData.sort" clearable :min="1"/> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-radio-group v-model="formData.status"> - <el-radio :label="1" border>鍚敤</el-radio> - <el-radio :label="0" border>绂佺敤</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="澶囨敞" prop="remark"> - <el-input - v-model="formData.remark" - type="textarea" - :rows="3" - maxlength="200" - show-word-limit - /> - </el-form-item> - </el-form> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - </win-sm> -</template> - -<script> -import winSm from '@/components/win/win-sm' -import myButton from '@/components/myButton/myButton' -import * as node from "@/api/projectConfig/stageNode"; - -export default { - name: 'edit', - components: {winSm, myButton}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - formData: { - nodeName: '', - sort: 1, - status: 1, - remark: '', - }, - rules: { - nodeName: [ - {required: true, message: '璇疯緭鍏ヨ妭鐐瑰悕绉�', trigger: 'blur'} - ], - } - } - }, - created() { - this.loading = true - this.getInfo() - }, - methods: { - getInfo() { - this.title = this.setting.title - if (this.setting.id != null) { - // 鏌ヨ鏁版嵁 - node.getDetail({id: this.setting.id}).then(res => { - this.loading = false - this.formData = Object.assign(this.formData, res) - }) - }else{ - this.loading = false - } - }, - close() { - this.formData = { - nodeName: '', - sort: 1, - status: 1, - remark: '', - } - this.$emit('close') - }, - save() { - this.$refs.ruleForm.validate((valid) => { - if (valid) { - const params = Object.assign({}, this.formData) - this.loading = true - node[params.id?'upd':'add'](params).then(res => { - this.loading = false - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }).catch(()=>{ - this.loading = false - }) - } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') - } - }) - } - } -} -</script> diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue deleted file mode 100644 index ef976e8..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue +++ /dev/null @@ -1,106 +0,0 @@ -<template> - <win-lg :title="setting.title" @close="close" :width="'800px'"> - <el-tabs v-loading="loading" v-model="activeName" :before-leave="beforeLeave"> - <el-tab-pane label="閫夋嫨鑺傜偣" name="first"> - <div class="box"> - <stageNode :tempProjectId="setting.stageId" ref="stageNode"></stageNode> - </div> - </el-tab-pane> - <el-tab-pane label="鑺傜偣鍛ㄦ湡璁剧疆" name="second"> - <div class="box"> - <nodeCycle ref="nodeCycle"/> - </div> - </el-tab-pane> - <el-tab-pane label="棰勮" name="third"> - <div class="box"> - <preview ref="preview" :tempProjectStages="tempProjectStages"/> - </div> - </el-tab-pane> - </el-tabs> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <template v-if="activeName === 'first'"> - <my-button key="4" name="涓嬩竴姝�" type="primary" site="form" @click="activeName = 'second'"/> - </template> - <my-button v-if="activeName === 'second'" key="1" name="涓婁竴姝�" type="primary" site="form" @click="activeName = 'first'"/> - <my-button v-if="activeName === 'second'" key="2" name="淇濆瓨" site="form" @click="doSave" /> - <my-button @click="activeName='third'" v-if="activeName === 'second'" key="3" name="棰勮" type="warning" site="form"/> - <my-button v-if="activeName === 'third'" name="杩斿洖" site="form" @click="activeName='second'"/> - </div> - </win-lg> -</template> - -<script> -import winLg from '@/components/win/win-lg' -import myButton from '@/components/myButton/myButton' -import stageNode from "@/views/projectConfig/buildPlan/nodeChoose/stageNode"; -import nodeCycle from "@/views/projectConfig/buildPlan/nodeChoose/nodeCycle"; -import preview from "@/views/projectConfig/buildPlan/nodeChoose/preview"; -import {updPStageNode} from '@/api/projectConfig/buildPlanNode' -export default { - name: 'nodeChoose', - components: {winLg, myButton,stageNode,nodeCycle,preview}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - activeName: 'first', - tempProjectStages: [] - }; - }, - mounted() { - }, - methods: { - doSave(){ - console.log(this.$refs.nodeCycle.getSelectTree()) - this.loading = true - updPStageNode({ - tempProjectId:this.setting.stageId, - tempProjectStages:this.$refs.nodeCycle.getSelectTree() - }).then(res=>{ - this.loading = false - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - }).catch(()=>{ - this.loading = false - }) - }, - close() { - this.$emit('close') - }, - beforeLeave(activeName, oldActiveName) { - let checked = this.$refs.stageNode.tree.some(item=>item.checked) - if(activeName==='second'&&checked){ - this.$refs.stageNode.setNodeCycleData() - } - if(activeName==='third'&&checked){ - this.$EventBus.$emit('clearData') - this.tempProjectStages = this.$refs.nodeCycle.getSelectTree() - } - if(activeName!=='first'&&!checked){ - this.$modal.msgError('璇峰厛閫夋嫨闃舵鑺傜偣') - this.activeName = oldActiveName - } - return checked - // return false - }, - }, -}; -</script> - -<style scoped> -.box { - height: calc(100vh - 450px); - overflow-y: auto; -} -</style> diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/items.js b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/items.js deleted file mode 100644 index cd07526..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/items.js +++ /dev/null @@ -1,26 +0,0 @@ -export default [ - { - type: 'text', - dataIndex: 'nodeName', - label: '鑺傜偣鍚嶇О', - placeholder: '鑺傜偣鍚嶇О', - defaultValue: '' - }, - { - type: 'select', - dataIndex: 'status', - label: '鐘舵��', - placeholder: '璇烽�夋嫨', - defaultValue: '', - options: [ - { - label: '鍚敤', - value: '1' - }, - { - label: '绂佺敤', - value: '0' - } - ] - } -] diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue deleted file mode 100644 index 601d0fe..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue +++ /dev/null @@ -1,215 +0,0 @@ -<template> - <div> - <el-tabs tab-position="left" style=""> - <template v-for="(stage,i) in tree"> - <el-tab-pane v-if="stage.checked" :key="i" :label="stage.name"> - <el-form :model="{tableData: tree}" ref="ruleForm" label-width="120px" class="demo-dynamic"> - <el-form-item label="闃舵鎬诲懆鏈�(澶�)"> - <el-input-number v-model="stage.stageTimeDays" :controls="false" :min="1" :step="1" step-strictly style="width: 400px;text-align: left"></el-input-number> - </el-form-item> - <el-table - border - height="calc(100vh - 501px)" - :data="stage.children.filter(item=>item.checked)" - style="width: 100%"> - <el-table-column - prop="name" - align="center" - label="鑺傜偣"/> - <el-table-column - align="center" - label="鑷」鐩紑濮嬬n澶�" - width="180"> - <template slot-scope="{row}"> - <el-input-number v-model="row.nodeTimeStart" :controls="false" :min="getStageStart(i)" :max="getStageEnd(i)" :step="1" step-strictly style="width: 100%;text-align: left"></el-input-number> - </template> - </el-table-column> - <el-table-column - align="center" - label="鎸佺画澶╂暟" - width="180"> - <template slot-scope="{row}"> - <el-input-number v-model="row.nodeTimeDays" :controls="false" :min="1" :max="stage.stageTimeDays||Infinity" :step="1" step-strictly style="width: 100%;text-align: left"></el-input-number> - </template> - </el-table-column> - <el-table-column - align="center" - label="瀹屾垚鍚庢彁閱�" - width="95"> - <template slot-scope="{row}"> - <el-switch - @change="notifyChange($event,row)" - v-model="row.completeNotifyStatus" - active-color="#13ce66" - :active-value="1" - :inactive-value="0"> - </el-switch> - </template> - </el-table-column> - <el-table-column - align="center" - label="鎻愰啋鑺傜偣" - width="180"> - <template slot-scope="{row,$index}"> - <el-cascader - v-model="row.notifyTempStageNodeId" - :ref="'cascade'+i+$index" - :disabled="row.completeNotifyStatus===0" - @change="cascadeChange($event,row,'cascade'+i+$index)" - :options="options" - :show-all-levels="false" - :props="{ multiple: true, checkStrictly: true, emitPath: false }" - clearable></el-cascader> - </template> - </el-table-column> - <el-table-column - align="center" - label="涓存湡棰勮" - width="80"> - <template slot-scope="{row}"> - <el-switch - v-model="row.warnNeed" - active-color="#13ce66" - :active-value="1" - :inactive-value="0"> - </el-switch> - </template> - </el-table-column> - <el-table-column - align="center" - label="闄勪欢蹇呬紶" - width="80"> - <template slot-scope="{row}"> - <el-switch - v-model="row.fileNeed" - active-color="#13ce66" - :active-value="1" - :inactive-value="0"> - </el-switch> - </template> - </el-table-column> - </el-table> - </el-form> - </el-tab-pane> - </template> - </el-tabs> - </div> -</template> - -<script> -export default { - data() { - return { - options: [], - tree: [] - } - }, - mounted() { - this.$EventBus.$on('setTree', data => { - this.tree = data - let arr = [] - data.map(item => { - if (item.checked) { - let stage = { - value: item.id, - label: item.name, - notifyTempType: 0, // 0闃舵 1鑺傜偣 - children: [] - } - item.children.map(node => { - if (node.checked) { - stage.children.push({ - value: node.id, - label: node.name, - notifyTempType: 1, // 0闃舵 1鑺傜偣 - }) - } - }) - arr.push(stage) - } - }) - this.options = arr //鍙�夋嫨涓烘彁閱掕妭鐐圭殑鍒楄〃 - }) - }, - computed:{ - getStageStart(){ - return (i)=>{ - let num = 0 - this.tree.map((item,idx)=>{ - if(idx<i){ - num+=(item.stageTimeDays||0) - } - }) - return num+1 - } - - }, - getStageEnd(){ - return (i)=>{ - let num = 0 - this.tree.map((item,idx)=>{ - if(idx<i+1){ - num+=(item.stageTimeDays||0) - } - }) - return num+1 - } - - } - }, - beforeDestroy() { - this.$EventBus.$off('setTree') - }, - methods: { - getSelectTree(){ - let arr = [] - this.tree.map(item => { - if (item.checked) { - let stage = JSON.parse(JSON.stringify(item)) - delete stage.checked - delete stage.checkedList - delete stage.name - let children =[] - stage.children.map(node => { - if (node.checked) { - let item = JSON.parse(JSON.stringify(node)) - delete item.checked - delete item.notifyTempStageNodeId - delete item.name - children.push(item) - } - }) - stage.children = children - arr.push(stage) - } - }) - return arr - }, - notifyChange(e,row){ - row.notify = [] - row.notifyStageNodes = [] - }, - cascadeChange(e, row, ref) { - let nodes = this.$refs[ref][0].getCheckedNodes(false) - let arr = [] - nodes.map(item => { - if (item.checked) { - arr.push({ - tempStageNodeId: row.id, - notifyTempType: item.level - 1, - notifyTempStageNodeId: item.value - }) - } - }) - row.notify = arr - } - } -} -</script> - -<style scoped> -.tab-content { - height: calc(100vh - 450px); - overflow-y: auto; -} -</style> diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue deleted file mode 100644 index 3018bc8..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue +++ /dev/null @@ -1,205 +0,0 @@ -<template> - <div class="box"> - <div class="f-r"> - <div>璁剧疆寮�濮嬫椂闂�</div> - <el-date-picker - style="margin: 0 10px" - v-model="startTime" - type="date" - value-format="yyyyMMddHHmmss" - placeholder="閫夋嫨鏃ユ湡"> - </el-date-picker> - <my-button @click="doPreview" name="鐢熸垚棰勮" type="warning" site="form"/> - </div> - <el-table - v-loading="loading" - border - height="calc(100vh - 505px)" - :data="tableData" - :span-method="spanMethod" - style="width: 100%;margin-top: 15px"> - <el-table-column - prop="stageName" - align="center" - width="130" - label="闃舵"/> - <el-table-column - prop="nodeName" - align="center" - width="110" - label="鑺傜偣"/> - <el-table-column - prop="startDate" - align="center" - label="寮�濮嬫椂闂�" - width="110"> - <template slot-scope="scope"> - <span>{{ longToDate(scope.row.startDate) }}</span> - </template> - </el-table-column> - <el-table-column - prop="endDate" - align="center" - label="鎴鏃堕棿" - width="110"> - <template slot-scope="scope"> - <span>{{ longToDate(scope.row.endDate) }}</span> - </template> - </el-table-column> - <el-table-column :width="dates.length*100+2" class-name="my-col"> - <template slot="header" slot-scope="scope"> - <span v-for="(item,i) in dates" :key="i" class="item">{{ longToDate(item) }}</span> - </template> - <template slot-scope="{row,$index}"> - <!-- <span v-for="(item,i) in dates" :key="i" class="progress" :class="(dates.indexOf(row.startDate)<=i)&&(dates.indexOf(row.endDate)>=i)?'act':''"><span class="act"></span></span>--> - <span v-for="(item,i) in dates" :key="i" class="progress"> - <span v-if="(dates.indexOf(row.startDate)<=i)&&(dates.indexOf(row.endDate)>=i)" class="act"></span> - </span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import {getPreview} from "@/api/projectConfig/buildPlanNode"; -import myButton from '@/components/myButton/myButton' -import * as DateFormatter from '@/utils/DateFormatter'; - -export default { - name: 'preview', - components: {myButton}, - props: ['tempProjectStages'], - data() { - return { - loading: false, - startTime: '', - tableData: [], - spanArr: [], - pos: 0, - dates: [] - } - }, - mounted() { - this.$EventBus.$on('clearData', data => { - this.startTime = '' - this.tableData = [] - this.spanArr = [] - this.pos = 0 - this.dates = [] - }) - }, - methods: { - doPreview() { - this.loading = true - getPreview({ - startDate: this.startTime, - tempProjectStages: this.tempProjectStages - }).then(res => { - let arr = [] - res.map(item => { - arr.push(item.startDate) - arr.push(item.endDate) - }) - let newArr = arr.filter((value, index, self) => { - return self.indexOf(value) === index; - }); - this.dates = newArr.sort() - this.tableData = res - this.getSpanArr(res) - this.loading = false - }).catch(() => { - this.loading = false - }) - }, - spanMethod({row, column, rowIndex, columnIndex}) { - if (columnIndex === 0) { - const rowspan = this.spanArr[rowIndex] - const colspan = rowspan > 0 ? 1 : 0 - return { - rowspan, //琛� - colspan //鍒� - }; - } - }, - getSpanArr(data) { - this.spanArr = []; - for (let i = 0; i < data.length; i++) { - if (i === 0) { - this.spanArr.push(1); - this.pos = 0; - } else { - // 鍒ゆ柇褰撳墠鍏冪礌涓庝笂涓�涓厓绱犳槸鍚︾浉鍚� - if (data[i].id === data[i - 1].id && data[i].id) { - this.spanArr[this.pos] += 1; - this.spanArr.push(0); - } else { - this.spanArr.push(1); - this.pos = i; - } - } - } - }, - longToDate(long) { - return DateFormatter.LongToDate(long) - } - } -} -</script> -<style> -.my-col { - padding: 0 !important; -} - -.my-col .cell { - padding: 0 !important; -} - -.el-table__row .my-col { - border: none !important; -} -</style> -<style scoped lang="scss"> -.item { - display: inline-block; - text-align: center; - width: 100px; -} - -.progress { - position: relative; - //left: -50px; - display: inline-block; - width: 100px; - height: 24px; - margin-top: 8px; - - &::after { - content: ''; - position: absolute; - width: 1px; - height: 40px; - left: 100px; - top: -8px; - border-right: 1px dashed #dfe6ec; - } -} - -.act { - position: absolute; - display: inline-block; - width: 100px; - height: 24px; - background-color: #0c8aff; - //left: -50px; -} - -.rt { - //left: -50px; -} - -.lt { - -} - -</style> diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue deleted file mode 100644 index 3c289fd..0000000 --- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue +++ /dev/null @@ -1,85 +0,0 @@ -<template> - <div class="box" v-loading="loading"> - <div v-for="(stage,i) in tree" :key="i"> - <el-checkbox @change="stageChange($event,stage)" v-model="stage.checked">{{ stage.name }}</el-checkbox> - <div style="margin: 15px 0;"></div> - <div style="margin: 15px 0 15px 20px"> - <el-checkbox-group @change="nodesChange($event,stage)" v-model="stage.checkedList"> - <el-checkbox @change="nodeChange($event,stage,node)" v-for="(node,k) in stage.children" :label="node.id" :key="k">{{ node.name }}</el-checkbox> - </el-checkbox-group> - </div> - </div> - </div> -</template> - -<script> -import {getPStageNode} from "@/api/projectConfig/buildPlanNode"; - -export default { - props: ['tempProjectId'], - name: 'stageNode', - data() { - return { - loading: true, - tree: [], - checkAll: false, - checkedCities: [], - } - }, - mounted() { - this.getTree() - }, - methods: { - setNodeCycleData() { - this.$EventBus.$emit('setTree', this.tree) - }, - setPreviewData() { - this.$EventBus.$emit('setPreviewData', this.tree) - }, - stageChange(e, stage) { - if (e) { - stage.checkedList = stage.children.map(item => { - item.checked = true - return item.id - }) - } else { - stage.checkedList = [] - } - }, - nodesChange(e, stage) { - stage.checked = e.length > 0 - }, - nodeChange(e, stage, node) { - node.checked = e - }, - getTree() { - getPStageNode({tempProjectId: this.tempProjectId}).then(res => { - this.loading = false - res.map((stage, i) => { - stage.checked = stage.children.some(item => item.isDelete === 0) - stage.stageTimeDays = stage.stageTimeDays || undefined - let checkedList = [] - stage.children.map(node => { - if (node.isDelete === 0) { - checkedList.push(node.id) - } - node.checked = node.isDelete === 0 - node.nodeTimeStart = node.nodeTimeStart || undefined //鑷」鐩紑濮嬬N澶� - node.nodeTimeDays = node.nodeTimeDays || undefined //鎸佺画澶╂暟 - if(node.notify){ - node.notifyTempStageNodeId = node.notify.map(n=>n.notifyTempStageNodeId) - } - - }) - stage.checkedList = checkedList - }) - this.tree = res - }) - } - } -} -</script> - -<style scoped> - -</style> diff --git a/admin-web/src/views/projectConfig/kanbanConfig/edit.vue b/admin-web/src/views/projectConfig/kanbanConfig/edit.vue deleted file mode 100644 index c8d1761..0000000 --- a/admin-web/src/views/projectConfig/kanbanConfig/edit.vue +++ /dev/null @@ -1,115 +0,0 @@ -<template> - <win-sm :title="setting.title" @close="close" :width="'800px'"> - <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="120px"> - <el-form-item label="鍏抽敭鑺傜偣鍚嶇О" prop="boardName"> - <el-input v-model="formData.boardName" placeholder="璇疯緭鍏ュ叧閿妭鐐瑰悕绉�" clearable maxlength="32" show-word-limit style="width: 100%"/> - </el-form-item> -<!-- <el-form-item label="缂栧彿" prop="boardCode"> - <el-input v-model="formData.boardCode" placeholder="璇疯緭鍏ョ紪鍙�" clearable maxlength="32" show-word-limit style="width: 100%"/> - </el-form-item>--> - <el-form-item label="灞曠ず椤哄簭" prop="sort"> - <el-input-number v-model="formData.sort" clearable :min="1"/> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-radio-group v-model="formData.status"> - <el-radio :label="1" border>鍚敤</el-radio> - <el-radio :label="0" border>绂佺敤</el-radio> - </el-radio-group> - </el-form-item> - </el-form> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - </win-sm> -</template> - -<script> -import winSm from '@/components/win/win-sm' -import myButton from '@/components/myButton/myButton' -import * as api from "@/api/projectConfig/kanbanConfig"; - -export default { - name: 'edit', - components: {winSm, myButton}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - formData: { - boardName: '', - boardCode: '', - sort: '', - status: 1 - }, - rules: { - boardName: [ - {required: true, message: '璇疯緭鍏ュ叧閿妭鐐瑰悕绉�', trigger: 'blur'}, - ], - boardCode: [ - {required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur'}, - ] - } - } - }, - created() { - this.loading = true - this.getInfo() - }, - methods: { - getInfo() { - this.title = this.setting.title - if (this.setting.id != null) { - // 鏌ヨ鏁版嵁 - api.getDetail({id: this.setting.id}).then(res => { - this.loading = false - this.formData = Object.assign(this.formData, res) - }) - }else{ - this.loading = false - } - }, - close() { - this.formData = { - planTypeCode: '', - projectName: '', - projectCode: '', - status: 1, - remark: '', - } - this.$emit('close') - }, - save() { - this.$refs.ruleForm.validate((valid) => { - if (valid) { - const params = Object.assign({}, this.formData) - this.loading = true - api[params.id?'upd':'add'](params).then(res => { - this.loading = false - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }).catch(()=>{ - this.loading = false - }) - } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') - } - }) - } - } -} -</script> diff --git a/admin-web/src/views/projectConfig/kanbanConfig/index.vue b/admin-web/src/views/projectConfig/kanbanConfig/index.vue deleted file mode 100644 index 89ad20c..0000000 --- a/admin-web/src/views/projectConfig/kanbanConfig/index.vue +++ /dev/null @@ -1,166 +0,0 @@ -<template> - <div class="app-container"> - <el-card class="box-card" shadow="never"> - <div class="filter-container" style="margin-bottom: 10px"> - <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> - </div> - <!--鍒楄〃--> - <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> - </el-card> - <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> - <nodeChoose v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeChoose> - </div> -</template> - -<script> -import MyTableV2 from '@/components/myTable/myTableV2'; -import SettingIplatform from '@/utils/settingIplatform'; -import items from './items'; -import edit from './edit' -import nodeChoose from "@/views/projectConfig/kanbanConfig/nodeChoose"; -import {updStatus} from "@/api/projectConfig/kanbanConfig"; - -export default { - components: {MyTableV2, edit,nodeChoose}, - data() { - return { - // 鎼滅储鏉′欢 - items: items, - filterFrom: { - boardName: '', - status: '1', - }, - //鏂板缂栬緫 - editSetting: { - title: '', - id: '', - show: false, - }, - //鑺傜偣璁剧疆 - nodeSetting: { - title: '妯℃澘鑺傜偣璁剧疆', - stageId: '', - show: false, - }, - // 琛ㄦ牸鏁版嵁 - table: { - showIndex: true, // 鏄惁鏄剧ず搴忓彿 - expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 - url: SettingIplatform.apiBaseURL + '/pc/p/temp/project/board/list', // 璇锋眰鍦板潃 - // 宸ュ叿鏉� - tools: { - columnsCtrl: { - // 鍒楁帶鍒舵寜閽� - show: false, - }, - generalExport: { - // 閫氱敤瀵煎嚭鎸夐挳 - show: false, - }, - // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [], - }, - // 鍒椾俊鎭� - columns: [ - {title: '鍏抽敭鑺傜偣鍚嶇О', field: 'boardName', align: 'left'}, - // {title: '缂栧彿', field: 'boardCode', align: 'center'}, - {title: '椤哄簭鍙�', field: 'sort', align: 'left'}, - { - field: 'status', - title: '鐘舵��', - align: 'center', - width: 80, - switch: (row) => { - return { - value: row.status === 1, // 寮� - label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� - click: () => { - // 鐐瑰嚮浜嬩欢 - this.updState(row); - }, - }; - }, - }, - ], - // 鎿嶄綔淇℃伅 - operation: { - show: true, // 鏄剧ず鎿嶄綔鍒� - width: '250', // 鍒楀 - attr: [ - { - title: '缂栬緫', - events: (row) => { - this.showAdd(row.id); - }, - }, - { - title: '妯℃澘鑺傜偣璁剧疆', - type: 'success', - events: (row) => { - this.showNode(row.id); - }, - }, - ], - }, - paging: { - show: false, // 鏄剧ず鍒嗛〉 - // 鍒嗛〉淇℃伅 - page: { - small: false, - pageNum: 1, - pageSize: 10, - total: 0, - }, - }, - }, - }; - }, - mounted() { - }, - methods: { - // 鏌ヨtable鍒楄〃 - search(pageNum) { - if (pageNum != undefined) { - this.$refs.myTable.search(pageNum); - } else { - this.$refs.myTable.search(); - } - }, - filterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params); - this.search(); - }, - //娣诲姞銆佺紪杈� - showAdd(id) { - let title = '娣诲姞'; - if (id != null) { - title = '缂栬緫'; - } - this.editSetting.id = id; - this.editSetting.title = title; - this.editSetting.show = true; - }, - updState(row) { - let text = row.status === 0 ? "鍚敤" : "绂佺敤"; - this.$modal.confirm('纭瑕�' + text + '"' + row.boardName + '"鑺傜偣鍚楋紵').then(() => { - let status = row.status === 1 ? 0 : 1 - updStatus({ - id: row.id, - status - }).then(res => { - if (res) { - row.status = row.status === 1 ? 0 : 1 - this.$modal.msgSuccess(text + "鎴愬姛"); - } - }) - }) - }, - showNode(id) { - this.nodeSetting.id = id; - this.nodeSetting.show = true; - }, - }, -}; -</script> - -<style scoped></style> diff --git a/admin-web/src/views/projectConfig/kanbanConfig/items.js b/admin-web/src/views/projectConfig/kanbanConfig/items.js deleted file mode 100644 index bebbf01..0000000 --- a/admin-web/src/views/projectConfig/kanbanConfig/items.js +++ /dev/null @@ -1,33 +0,0 @@ -export default [ - { - type: 'text', - dataIndex: 'boardName', - label: '鍏抽敭鑺傜偣鍚嶇О', - placeholder: '璇疯緭鍏�', - defaultValue: '' - }, - /*{ - type: 'text', - dataIndex: 'boardCode', - label: '妯℃澘缂栧彿', - placeholder: '妯℃澘缂栧彿', - defaultValue: '' - },*/ - { - type: 'select', - dataIndex: 'status', - label: '鐘舵��', - placeholder: '璇烽�夋嫨', - defaultValue: '1', - options: [ - { - label: '鍚敤', - value: '1' - }, - { - label: '绂佺敤', - value: '0' - } - ] - } -] diff --git a/admin-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue b/admin-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue deleted file mode 100644 index 054bfa3..0000000 --- a/admin-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue +++ /dev/null @@ -1,129 +0,0 @@ -<template> - <win-md :title="setting.title" @close="close" :width="'800px'"> - <div style="min-height: 300px"> - <el-table - v-loading="loading" - border - :data="tableData" - style="width: 100%;margin-top: 15px"> - <el-table-column - prop="tempProjectName" - align="center" - width="200" - label="妯℃澘"/> - <el-table-column - align="center" - label="閫夋嫨鑺傜偣"> - <template slot-scope="{row,$index}"> - <el-cascader - :key="$index" - style="width: 100%;" - v-model="row.tempStageNodeIds" - :options="row.options" - :show-all-levels="false" - :props="{ multiple: true, emitPath: false,value:'id', label:'name'}" - clearable></el-cascader> - </template> - </el-table-column> - </el-table> - </div> - - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - </win-md> -</template> - -<script> -import winMd from '@/components/win/win-md' -import myButton from '@/components/myButton/myButton' -import {getList, getTree, upd} from "@/api/projectConfig/kanbanNode"; - -export default { - name: 'nodeChoose', - components: {winMd, myButton}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - options: [], - tableData: [] - } - }, - mounted() { - }, - created() { - this.getList() - }, - methods: { - getList() { - this.loading = true - getList({id: this.setting.id}).then(res => { - let count = res.length - res.map((item) => { - getTree({tempProjectId: item.id}).then(ret => { - item.options = ret - count-- - if (count < 1) { - this.tableData = res - this.loading = false - } - }) - }) - }) - }, - close() { - this.loading = false - this.tableData = [] - this.$emit('close') - }, - save() { - let arr = [] - if (this.tableData.every(item => item.tempStageNodeIds.length === 0)) { - this.$modal.msgError('璇烽�夋嫨鑺傜偣') - return; - } - for (let i = 0; i < this.tableData.length; i++) { - const item = this.tableData[i] - item.tempStageNodeIds.map(node => { - item.tempStageNodeId = node - arr.push({...item}) - }) - } - arr.map(item => { - item.tempProjectId = item.id - delete item.tempStageNodeIds - delete item.id - delete item.options - delete item.tempProjectName - }) - this.loading = true - upd({ - id: this.setting.id, - tempProjectBoardNode: arr - }).then(res => { - this.loading = false - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }).catch(() => { - this.loading = false - }) - } - } -} -</script> diff --git a/admin-web/src/views/projectConfig/stageConfig/edit.vue b/admin-web/src/views/projectConfig/stageConfig/edit.vue deleted file mode 100644 index c99c81b..0000000 --- a/admin-web/src/views/projectConfig/stageConfig/edit.vue +++ /dev/null @@ -1,116 +0,0 @@ -<template> - <win-sm :title="setting.title" @close="close" :width="'800px'"> - <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> - <el-form-item label="闃舵鍚嶇О" prop="stageName"> - <el-input v-model="formData.stageName" clearable maxlength="32" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="灞曠ず椤哄簭" prop="sort"> - <el-input-number v-model="formData.sort" clearable :min="1"/> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-radio-group v-model="formData.status"> - <el-radio :label="1" border>鍚敤</el-radio> - <el-radio :label="0" border>绂佺敤</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="澶囨敞" prop="remark"> - <el-input - v-model="formData.remark" - type="textarea" - :rows="3" - maxlength="200" - show-word-limit - /> - </el-form-item> - </el-form> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - </win-sm> -</template> - -<script> -import winSm from '@/components/win/win-sm' -import myButton from '@/components/myButton/myButton' -import * as stage from "@/api/projectConfig/stageConfig"; - -export default { - name: 'edit', - components: {winSm, myButton}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - formData: { - stageName: '', - sort: 1, - status: 1, - remark: '', - }, - rules: { - stageName: [ - {required: true, message: '璇疯緭鍏ラ樁娈靛悕绉�', trigger: 'blur'} - ], - } - } - }, - created() { - this.loading = true - this.getInfo() - }, - methods: { - getInfo() { - if (this.setting.id != null) { - // 鏌ヨ鏁版嵁 - stage.getDetail({id: this.setting.id}).then(res => { - this.loading = false - this.formData = Object.assign(this.formData, res) - }) - }else{ - this.loading = false - } - }, - close() { - this.formData = { - stageName: '', - sort: 1, - status: 1, - remark: '', - } - this.$emit('close') - }, - save() { - this.$refs.ruleForm.validate((valid) => { - if (valid) { - const params = Object.assign({}, this.formData) - this.loading = true - stage[params.id?'upd':'add'](params).then(res => { - this.loading = false - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }).catch(()=>{ - this.loading = false - }) - } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') - } - }) - } - } -} -</script> diff --git a/admin-web/src/views/projectConfig/stageConfig/index.vue b/admin-web/src/views/projectConfig/stageConfig/index.vue deleted file mode 100644 index 8440bb1..0000000 --- a/admin-web/src/views/projectConfig/stageConfig/index.vue +++ /dev/null @@ -1,191 +0,0 @@ -<template> - <div class="app-container"> - <el-card class="box-card" shadow="never"> - <div class="filter-container" style="margin-bottom: 10px"> - <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> - </div> - <!--鍒楄〃--> - <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> - </el-card> - <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> - <nodeConfig v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeConfig> - </div> -</template> - -<script> -import MyTableV2 from '@/components/myTable/myTableV2'; -import SettingIplatform from '@/utils/settingIplatform'; -import items from './items'; -import edit from './edit' -import nodeConfig from './node/node' -import {del, updStatus} from "@/api/projectConfig/stageConfig"; - -export default { - components: {MyTableV2, edit, nodeConfig}, - data() { - return { - // 鎼滅储鏉′欢 - items: items, - filterFrom: { - stageName: '', - status: '1', - }, - //鏂板缂栬緫 - editSetting: { - title: '', - id: '', - show: false, - }, - //鑺傜偣璁剧疆 - nodeSetting: { - title: '鑺傜偣璁剧疆', - stageId: '', - show: false, - }, - // 琛ㄦ牸鏁版嵁 - table: { - showIndex: true, // 鏄惁鏄剧ず搴忓彿 - expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 - url: SettingIplatform.apiBaseURL + '/pc/p/temp/stage/list', // 璇锋眰鍦板潃 - // 宸ュ叿鏉� - tools: { - columnsCtrl: { - // 鍒楁帶鍒舵寜閽� - show: false, - }, - generalExport: { - // 閫氱敤瀵煎嚭鎸夐挳 - show: false, - }, - // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [ - { - name: '鏂板', - click: () => { - this.showAdd(null); - }, - }, - ], - }, - // 鍒椾俊鎭� - columns: [ - {title: '闃舵鍚嶇О', field: 'stageName', align: 'left', width: '200px'}, - {title: '椤哄簭鍙�', field: 'sort', align: 'center', width: '80px'}, - {title: '鍖呭惈鑺傜偣', field: 'nodeName', align: 'left'}, - { - field: 'status', - title: '鐘舵��', - align: 'center', - width: 80, - switch: (row) => { - return { - value: row.status === 1, // 寮� - label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� - click: () => { - // 鐐瑰嚮浜嬩欢 - this.updState(row); - }, - }; - }, - }, - ], - // 鎿嶄綔淇℃伅 - operation: { - show: true, // 鏄剧ず鎿嶄綔鍒� - width: '250', // 鍒楀 - attr: [ - { - title: '缂栬緫', - events: (row) => { - this.showAdd(row.id); - }, - }, - { - title: '鑺傜偣璁剧疆', - type: 'warning', - events: (row) => { - this.showNode(row.id); - }, - }, - { - title: '鍒犻櫎', - events: (row) => { - this.handleDelete(row); - }, - }, - ], - }, - paging: { - show: true, // 鏄剧ず鍒嗛〉 - // 鍒嗛〉淇℃伅 - page: { - small: false, - pageNum: 1, - pageSize: 10, - total: 0, - }, - }, - }, - }; - }, - mounted() { - }, - methods: { - // 鏌ヨtable鍒楄〃 - search(pageNum) { - if (pageNum != undefined) { - this.$refs.myTable.search(pageNum); - } else { - this.$refs.myTable.search(); - } - }, - filterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params); - this.search(); - }, - //娣诲姞銆佺紪杈� - showAdd(id) { - let title = '娣诲姞'; - if (id != null) { - title = '缂栬緫'; - } - this.editSetting.id = id; - this.editSetting.title = title; - this.editSetting.show = true; - }, - updState(row) { - let text = row.status === 0 ? "鍚敤" : "绂佺敤"; - this.$modal.confirm('纭瑕�' + text + '"' + row.stageName + '"鍚楋紵').then(() => { - let status = row.status === 1 ? 0 : 1 - updStatus({ - id: row.id, - status - }).then(res => { - if (res) { - row.status = row.status === 1 ? 0 : 1 - this.$modal.msgSuccess(text + "鎴愬姛"); - this.search() - } - }) - }) - }, - showNode(id) { - this.nodeSetting.stageId = id; - this.nodeSetting.show = true; - }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - this.$confirm('鏄惁纭鍒犻櫎"' + row.stageName + '"闃舵锛�', { - type: 'warning' - }).then(() => { - del({id: row.id}).then(res => { - this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - this.search() - }) - }) - }, - }, -}; -</script> - -<style scoped></style> diff --git a/admin-web/src/views/projectConfig/stageConfig/items.js b/admin-web/src/views/projectConfig/stageConfig/items.js deleted file mode 100644 index acdebae..0000000 --- a/admin-web/src/views/projectConfig/stageConfig/items.js +++ /dev/null @@ -1,26 +0,0 @@ -export default [ - { - type: 'text', - dataIndex: 'stageName', - label: '闃舵鍚嶇О', - placeholder: '璇疯緭鍏�', - defaultValue: '' - }, - { - type: 'select', - dataIndex: 'status', - label: '鐘舵��', - placeholder: '璇烽�夋嫨', - defaultValue: '1', - options: [ - { - label: '鍚敤', - value: '1' - }, - { - label: '绂佺敤', - value: '0' - } - ] - } -] diff --git a/admin-web/src/views/projectConfig/stageConfig/node/edit.vue b/admin-web/src/views/projectConfig/stageConfig/node/edit.vue deleted file mode 100644 index d8624c2..0000000 --- a/admin-web/src/views/projectConfig/stageConfig/node/edit.vue +++ /dev/null @@ -1,118 +0,0 @@ -<template> - <win-sm :title="setting.title" @close="close" :width="'800px'"> - <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> - <el-form-item label="鑺傜偣鍚嶇О" prop="nodeName"> - <el-input v-model="formData.nodeName" clearable maxlength="32" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="灞曠ず椤哄簭" prop="sort"> - <el-input-number v-model="formData.sort" clearable :min="1"/> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-radio-group v-model="formData.status"> - <el-radio :label="1" border>鍚敤</el-radio> - <el-radio :label="0" border>绂佺敤</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="澶囨敞" prop="remark"> - <el-input - v-model="formData.remark" - type="textarea" - :rows="3" - maxlength="200" - show-word-limit - /> - </el-form-item> - </el-form> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - </win-sm> -</template> - -<script> -import winSm from '@/components/win/win-sm' -import myButton from '@/components/myButton/myButton' -import * as node from "@/api/projectConfig/stageNode"; - -export default { - name: 'edit', - components: {winSm, myButton}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - loading: false, - formData: { - nodeName: '', - sort: 1, - status: 1, - remark: '', - }, - rules: { - nodeName: [ - {required: true, message: '璇疯緭鍏ヨ妭鐐瑰悕绉�', trigger: 'blur'} - ], - } - } - }, - created() { - this.loading = true - this.getInfo() - }, - methods: { - getInfo() { - this.title = this.setting.title - if (this.setting.id != null) { - // 鏌ヨ鏁版嵁 - node.getDetail({id: this.setting.id}).then(res => { - this.loading = false - this.formData = Object.assign(this.formData, res) - }) - }else{ - this.loading = false - } - }, - close() { - this.formData = { - nodeName: '', - sort: 1, - status: 1, - remark: '', - } - this.$emit('close') - }, - save() { - this.$refs.ruleForm.validate((valid) => { - if (valid) { - const params = Object.assign({}, this.formData) - params.stageId = this.setting.stageId - this.loading = true - node[params.id?'upd':'add'](params).then(res => { - this.loading = false - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }).catch(()=>{ - this.loading = false - }) - } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') - } - }) - } - } -} -</script> diff --git a/admin-web/src/views/projectConfig/stageConfig/node/items.js b/admin-web/src/views/projectConfig/stageConfig/node/items.js deleted file mode 100644 index 3b75f44..0000000 --- a/admin-web/src/views/projectConfig/stageConfig/node/items.js +++ /dev/null @@ -1,26 +0,0 @@ -export default [ - { - type: 'text', - dataIndex: 'nodeName', - label: '鑺傜偣鍚嶇О', - placeholder: '璇疯緭鍏�', - defaultValue: '' - }, - { - type: 'select', - dataIndex: 'status', - label: '鐘舵��', - placeholder: '璇烽�夋嫨', - defaultValue: '1', - options: [ - { - label: '鍚敤', - value: '1' - }, - { - label: '绂佺敤', - value: '0' - } - ] - } -] diff --git a/admin-web/src/views/projectConfig/stageConfig/node/node.vue b/admin-web/src/views/projectConfig/stageConfig/node/node.vue deleted file mode 100644 index 75a2212..0000000 --- a/admin-web/src/views/projectConfig/stageConfig/node/node.vue +++ /dev/null @@ -1,192 +0,0 @@ -<template> - <win-lg :title="setting.title" @close="close" :width="'800px'"> - <el-card class="box-card" shadow="never"> - <div class="filter-container" style="margin-bottom: 10px"> - <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> - </div> - <!--鍒楄〃--> - <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> - </el-card> - <edit v-if="editSetting.show" :setting="editSetting" @close="closeNode" @search="search"></edit> - </win-lg> -</template> - -<script> -import MyTableV2 from '@/components/myTable/myTableV2'; -import winLg from '@/components/win/win-lg' -import SettingIplatform from '@/utils/settingIplatform'; -import items from './items'; -import edit from './edit' -import {del, updStatus} from "@/api/projectConfig/stageNode"; - -export default { - name: 'nodeConfig', - components: {MyTableV2, winLg, edit}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - // 鎼滅储鏉′欢 - items: items, - filterFrom: { - nodeName: '', - status: '1', - }, - //鏂板缂栬緫 - editSetting: { - title: '', - id: '', - show: false, - }, - // 琛ㄦ牸鏁版嵁 - table: { - showIndex: true, // 鏄惁鏄剧ず搴忓彿 - expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 - url: SettingIplatform.apiBaseURL + '/pc/p/temp/stage/node/list?stageId='+this.setting.stageId, // 璇锋眰鍦板潃 - // 宸ュ叿鏉� - tools: { - columnsCtrl: { - // 鍒楁帶鍒舵寜閽� - show: false, - }, - generalExport: { - // 閫氱敤瀵煎嚭鎸夐挳 - show: false, - }, - // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [ - { - name: '鏂板', - click: () => { - this.showAdd(null); - }, - }, - ], - }, - // 鍒椾俊鎭� - columns: [ - {title: '鑺傜偣鍚嶇О', field: 'nodeName', align: 'center'}, - {title: '椤哄簭鍙�', field: 'sort', align: 'center'}, - {title: '璇存槑', field: 'remark', align: 'center'}, - { - field: 'status', - title: '鐘舵��', - align: 'center', - width: 80, - switch: (row) => { - return { - value: row.status === 1, // 寮� - label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� - click: () => { - // 鐐瑰嚮浜嬩欢 - this.updState(row); - }, - }; - }, - }, - ], - // 鎿嶄綔淇℃伅 - operation: { - show: true, // 鏄剧ず鎿嶄綔鍒� - width: '200', // 鍒楀 - attr: [ - { - title: '缂栬緫', - events: (row) => { - this.showAdd(row.id); - }, - }, - { - title: '鍒犻櫎', - events: (row) => { - this.handleDelete(row); - }, - }, - ], - }, - paging: { - show: true, // 鏄剧ず鍒嗛〉 - // 鍒嗛〉淇℃伅 - page: { - small: false, - pageNum: 1, - pageSize: 10, - total: 0, - }, - }, - }, - }; - }, - mounted() { - }, - methods: { - close() { - this.$emit('close') - }, - closeNode() { - this.editSetting.show = false - this.$emit('search') - }, - // 鏌ヨtable鍒楄〃 - search(pageNum) { - if (pageNum != undefined) { - this.$refs.myTable.search(pageNum); - } else { - this.$refs.myTable.search(); - } - }, - filterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params); - this.search(); - }, - //娣诲姞銆佺紪杈� - showAdd(id) { - let title = '娣诲姞'; - if (id != null) { - title = '缂栬緫'; - } - this.editSetting.id = id||this.setting.id; - this.editSetting.stageId = this.setting.stageId; - this.editSetting.title = title; - this.editSetting.show = true; - }, - updState(row) { - let text = row.status === 0 ? "鍚敤" : "绂佺敤"; - this.$modal.confirm('纭瑕�' + text + '"' + row.nodeName + '"鍚楋紵').then(() => { - let status = row.status === 1 ? 0 : 1 - updStatus({ - id: row.id, - status - }).then(res => { - if (res) { - row.status = row.status === 1 ? 0 : 1 - this.$modal.msgSuccess(text + "鎴愬姛"); - this.search() - } - }) - }) - }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - this.$confirm('鏄惁纭鍒犻櫎"' + row.nodeName + '"闃舵锛�', { - type: 'warning' - }).then(() => { - del({id:row.id}).then(res=>{ - this.$modal.msgSuccess( "鍒犻櫎鎴愬姛"); - this.search() - }) - }) - }, - }, -}; -</script> - -<style scoped></style> diff --git a/admin-web/src/views/projectConfig/warningConfig/chooseItems.js b/admin-web/src/views/projectConfig/warningConfig/chooseItems.js deleted file mode 100644 index e478dfd..0000000 --- a/admin-web/src/views/projectConfig/warningConfig/chooseItems.js +++ /dev/null @@ -1,16 +0,0 @@ -export default [ - { - type: 'text', - dataIndex: 'userName', - label: '浜哄憳濮撳悕', - placeholder: "璇疯緭鍏�", - defaultValue: '' - }, - { - type: 'text', - dataIndex: 'userPhone', - label: '鎵嬫満鍙�', - placeholder: "璇疯緭鍏�", - defaultValue: '' - } -] diff --git a/admin-web/src/views/projectConfig/warningConfig/chooseUser.vue b/admin-web/src/views/projectConfig/warningConfig/chooseUser.vue deleted file mode 100644 index 6e0140f..0000000 --- a/admin-web/src/views/projectConfig/warningConfig/chooseUser.vue +++ /dev/null @@ -1,206 +0,0 @@ -<template> - <win-md :title="setting.title" @close="close" width="1000px"> - <el-row :gutter="15"> - <!--宸︿晶鏍戝舰寮�濮�--> - <el-col :span="6"> - <el-card style="height: calc(100vh - 400px);overflow-y: auto" shadow="never"> - <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> - </el-card> - </el-col> - <!--宸︿晶鏍戝舰缁撴潫--> - <!--鍙充晶鍒楄〃寮�濮�--> - <el-col :span="18"> - <el-card class="box-card" shadow="never"> - <!--鎼滅储鏉′欢--> - <div class="filter-container"> - <my-search ref="searchBar" :items="chooseItems" @search="fifterForm"></my-search> - </div> - <el-row style="margin-top: 15px"> - <el-col> - <!--鍒楄〃--> - <my-table ref="myTable" :parentSelectionsObject="setting.selections" :filter="filterFrom" :table="table"/> - </el-col> - </el-row> - </el-card> - </el-col> - </el-row> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - </win-md> -</template> - -<script> -import winMd from '@/components/win/win-md' -import myButton from '@/components/myButton/myButton' -import myTree from '@/components/myTree/index'; -import MyTable from '@/components/myTable/myTable'; -import SettingIplatform from "@/utils/settingIplatform"; -import * as DateFormatter from "@/utils/DateFormatter"; -import {getTree} from "@/api/baseSetting/finsystenant"; -import chooseItems from './chooseItems' - -export default { - name: "chooseUser", - components: {winMd, myButton, MyTable, myTree}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - chooseItems: chooseItems, - // 鏍戞暟鎹� - treeDataList: [], - // 鎼滅储鏉′欢 - filterFrom: { - tenantCode: 0, - trnantId: 0, - userName: null, - userPhone: null, - }, - // 琛ㄦ牸鏁版嵁 - table: { - showIndex: true, // 鏄惁鏄剧ず搴忓彿 - showCheckBox: true, - expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 - url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/user/select/list?status=1', // 璇锋眰鍦板潃 - // 宸ュ叿鏉� - tools: { - columnsCtrl: { - // 鍒楁帶鍒舵寜閽� - show: false, - }, - generalExport: { - // 閫氱敤瀵煎嚭鎸夐挳 - show: false, - }, - // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [ - { - name: '鏂板', - click: () => { - this.showAdd(null); - }, - }, - ], - }, - // 鍒椾俊鎭� - columns: [ - {title: '浜哄憳濮撳悕', field: 'userName', align: 'left'}, - {title: '鍛樺伐缂栧彿', field: 'userCode', align: 'left'}, - {title: '鎵嬫満鍙�', field: 'userPhone', align: 'center', width: 120}, - { - title: '鍒涘缓鏃堕棿', - field: 'createTime', - align: 'center', - width: 160, - formatter: (row) => { - return {value: DateFormatter.LongToDateTime(row.createTime)}; - }, - }, - ], - // 鎿嶄綔淇℃伅 - operation: { - show: false, // 鏄剧ず鎿嶄綔鍒� - }, - paging: { - show: true, // 鏄剧ず鍒嗛〉 - // 鍒嗛〉淇℃伅 - page: { - small: false, - pageNum: 1, - pageSize: 10, - total: 0, - }, - }, - }, - } - }, - created() { - // 鑾峰彇鏈烘瀯鏍� - this.initTreeData(); - }, - mounted() { - }, - methods: { - close() { - this.$emit('close') - }, - save() { - let checkUsers = this.$refs.myTable.getChedkObject() - if (checkUsers.length === 0) { - this.$message.error('璇烽�夋嫨浜哄憳') - return false - } - this.$emit('checkUsers', checkUsers.map(item => { - return { - id: item.id, - userName: item.userName - } - })) - }, - // 宸︿晶鏍戝垵濮嬪寲 - initTreeData() { - getTree().then((res) => { - const content = res || []; - this.treeDataList.splice(0, this.treeDataList.length); - this.treeDataList = content; - if (this.treeDataList && this.treeDataList.length > 0) { - this.tenantId = this.treeDataList[0].id; - this.tenantCode = this.treeDataList[0].code; - } - }); - }, - nodeClick(param) { - param = param || {}; - this.p = Object.assign( - {}, - { - id: param.id, - name: param.name, - code: param.code, - }, - ); - if (this.p.code != undefined && this.p.code != null) { - this.filterFrom.tenantCode = this.p.code; - this.tenantId = this.p.id; - } else { - this.filterFrom.tenantCode = 0; - } - this.table.paging.page.pageNum = 1; - this.search(1); - }, - // 鏌ヨtable鍒楄〃 - search(pageNum) { - if (pageNum != undefined) { - this.$refs.myTable.search(pageNum); - } else { - this.$refs.myTable.search(); - } - }, - // 閲嶇疆 - reset() { - this.filterFrom.tenantCode = null; - this.filterFrom.userName = null; - this.filterFrom.userPhone = null; - this.search(1); - }, - fifterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params); - this.search(); - }, - } -} -</script> - -<style scoped> - -</style> diff --git a/admin-web/src/views/projectConfig/warningConfig/edit.vue b/admin-web/src/views/projectConfig/warningConfig/edit.vue deleted file mode 100644 index 6d0dcc8..0000000 --- a/admin-web/src/views/projectConfig/warningConfig/edit.vue +++ /dev/null @@ -1,330 +0,0 @@ -<template> - <win-md :title="setting.title" @close="close" :width="'800px'"> - <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> - <el-form-item label="妯℃澘鍚嶇О" prop="tempExpirationNotifyName"> - <el-input v-model="formData.tempExpirationNotifyName" placeholder="" clearable maxlength="32" show-word-limit style="width: 400px"/> - </el-form-item> - <h1>涓存湡鍓嶉璀�</h1> - <el-form-item label="涓存湡鍓�" prop="expireBefore1"> - <el-input-number v-model="formData.expireBefore1" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> - <span style="margin-right: 10px">澶�</span> - <el-checkbox v-model="formData.beforeManagerNotify1" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> - </el-form-item> - <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser1"> - <el-button @click="chooseUser('beforeManagerNotifyUser1')" type="primary" plain>閫夋嫨浜哄憳</el-button> - <el-tag - v-for="(item,i) in formData.beforeManagerNotifyUser1" - :key="item.id" - type="danger" - closable - @close="closeUser('beforeManagerNotifyUser1',i)" - effect="plain"> - {{ item.userName }} - </el-tag> - </el-form-item> - <el-form-item label="涓存湡鍓�" prop="expireBefore2"> - <el-input-number v-model="formData.expireBefore2" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> - <span style="margin-right: 10px">澶�</span> - <el-checkbox v-model="formData.beforeManagerNotify2" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> - </el-form-item> - <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser2"> - <el-button @click="chooseUser('beforeManagerNotifyUser2')" type="primary" plain>閫夋嫨浜哄憳</el-button> - <el-tag - v-for="(item,i) in formData.beforeManagerNotifyUser2" - :key="item.id" - type="danger" - closable - @close="closeUser('beforeManagerNotifyUser2',i)" - effect="plain"> - {{ item.userName }} - </el-tag> - </el-form-item> - <el-form-item label="涓存湡鍓�" prop="expireBefore3"> - <el-input-number v-model="formData.expireBefore3" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> - <span style="margin-right: 10px">澶�</span> - <el-checkbox v-model="formData.beforeManagerNotify3" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> - </el-form-item> - <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser3"> - <el-button @click="chooseUser('beforeManagerNotifyUser3')" type="primary" plain>閫夋嫨浜哄憳</el-button> - <el-tag - v-for="(item,i) in formData.beforeManagerNotifyUser3" - :key="item.id" - type="danger" - closable - @close="closeUser('beforeManagerNotifyUser3',i)" - effect="plain"> - {{ item.userName }} - </el-tag> - </el-form-item> - <h1>瓒呮湡鍚庨璀�</h1> - <el-form-item label="瓒呮湡鍚�" prop="expireAfter1"> - <el-input-number v-model="formData.expireAfter1" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> - <span style="margin-right: 10px">澶�</span> - <el-checkbox v-model="formData.afterManagerNotify1" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> - </el-form-item> - <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser1"> - <el-button @click="chooseUser('afterManagerNotifyUser1')" type="primary" plain>閫夋嫨浜哄憳</el-button> - <el-tag - v-for="(item,i) in formData.afterManagerNotifyUser1" - :key="item.id" - type="danger" - closable - @close="closeUser('afterManagerNotifyUser1',i)" - effect="plain"> - {{ item.userName }} - </el-tag> - </el-form-item> - <el-form-item label="瓒呮湡鍚�" prop="expireAfter2"> - <el-input-number v-model="formData.expireAfter2" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> - <span style="margin-right: 10px">澶�</span> - <el-checkbox v-model="formData.afterManagerNotify2" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> - </el-form-item> - <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser2"> - <el-button @click="chooseUser('afterManagerNotifyUser2')" type="primary" plain>閫夋嫨浜哄憳</el-button> - <el-tag - v-for="(item,i) in formData.afterManagerNotifyUser2" - :key="item.id" - type="danger" - closable - @close="closeUser('afterManagerNotifyUser2',i)" - effect="plain"> - {{ item.userName }} - </el-tag> - </el-form-item> - <el-form-item label="瓒呮湡鍚�" prop="expireAfter3"> - <el-input-number v-model="formData.expireAfter3" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> - <span style="margin-right: 10px">澶�</span> - <el-checkbox v-model="formData.afterManagerNotify3" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> - </el-form-item> - <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser3"> - <el-button @click="chooseUser('afterManagerNotifyUser3')" type="primary" plain>閫夋嫨浜哄憳</el-button> - <el-tag - v-for="(item,i) in formData.afterManagerNotifyUser3" - :key="item.id" - type="danger" - closable - @close="closeUser('afterManagerNotifyUser3',i)" - effect="plain"> - {{ item.userName }} - </el-tag> - </el-form-item> - <h1>棰勮鏂瑰紡</h1> - <div style="margin-left: 50px;margin-bottom: 20px"> - <el-checkbox v-model="formData.notifyWx" :true-label="1" :false-label="0">寰俊娑堟伅</el-checkbox> - <div style="margin-top: 20px"> - <el-checkbox v-model="formData.notifyMobMsg" :true-label="1" :false-label="0">鐭俊</el-checkbox> - <el-radio v-model="formData.notifyMobMsgWay" :label="0">鑷姩鍙戦��</el-radio> - <el-radio v-model="formData.notifyMobMsgWay" :label="1">鎵嬪姩鍙戦��</el-radio> - </div> - </div> - <template v-if="formData.notifyMobMsg===1"> - <el-form-item label="鎵嬫満鍙�" prop="notifyMob"> - <el-input - v-model="formData.notifyMob" - type="textarea" - :rows="3" - maxlength="1024" - show-word-limit - /> - </el-form-item> - </template> - <el-form-item label="鍙戦�佹椂闂�" prop="notifyTime"> - <el-select v-model="formData.notifyTime" placeholder=""> - <el-option - v-for="i in 24" - :key="i" - :label="(i-1)+'鐐�'" - :value="i-1"> - </el-option> - </el-select> - </el-form-item> - - </el-form> - <div slot="footer" align="center" class="dialog-footer"> - <my-button name="鍙栨秷" site="form" @click="close"/> - <my-button name="淇濆瓨" site="form" @click="save"/> - </div> - <chooseUser v-if="chooseSetting.show" :setting="chooseSetting" @close="chooseSetting.show = false" @checkUsers="checkUsers"></chooseUser> - </win-md> -</template> - -<script> -import winMd from '@/components/win/win-md' -import myButton from '@/components/myButton/myButton' -import chooseUser from "@/views/projectConfig/warningConfig/chooseUser"; -import * as api from "@/api/projectConfig/warningConfig"; - -export default { - name: 'edit', - components: {winMd, myButton, chooseUser}, - props: { - // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 - // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 - // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 - setting: { - type: Object, - default: () => { - } - } - }, - data() { - return { - chooseSetting: { - title: '閫夋嫨浜哄憳', - setting: [], - show: false - }, - loading: false, - formData: { - tempExpirationNotifyName: '', - expireBefore1: undefined, - beforeManagerNotify1: '', - beforeManagerNotifyUser1: [], - expireBefore2: undefined, - beforeManagerNotify2: '', - beforeManagerNotifyUser2: [], - expireBefore3: undefined, - beforeManagerNotify3: '', - beforeManagerNotifyUser3: [], - expireAfter1: undefined, - afterManagerNotify1: '', - afterManagerNotifyUser1: [], - expireAfter2: undefined, - afterManagerNotify2: '', - afterManagerNotifyUser2: [], - expireAfter3: undefined, - afterManagerNotify3: '', - afterManagerNotifyUser3: [], - notifyWx: 0, - notifyMobMsg: 0, - notifyMobMsgWay: '', - notifyMob: '', - notifyTime: '' - }, - rules: { - tempExpirationNotifyName: [ - {required: true, message: '璇疯緭鍏ユā鏉垮悕绉�', trigger: 'blur'}, - ], - notifyTime: [ - {required: true, message: '璇烽�夋嫨鍙戦�佹椂闂�', trigger: 'blur'}, - ] - }, - cur: '' - } - }, - created() { - this.loading = true - this.getInfo() - }, - methods: { - chooseUser(cur) { - this.cur = cur - this.chooseSetting.selections = this.formData[cur] - this.chooseSetting.show = true - }, - closeUser(key, i) { - this.formData[key].splice(i, 1) - }, - checkUsers(users) { - console.log(users) - this.formData[this.cur] = users - this.chooseSetting.show = false - this.cur = '' - }, - getInfo() { - this.title = this.setting.title - if (this.setting.id != null) { - // 鏌ヨ鏁版嵁 - api.getDetail({id: this.setting.id}).then(res => { - this.loading = false - this.formData = Object.assign(this.formData, res) - }) - } else { - this.loading = false - } - }, - close() { - this.formData = { - tempExpirationNotifyName: '', - expireBefore1: undefined, - beforeManagerNotify1: '', - beforeManagerNotifyUser1: [], - expireBefore2: undefined, - beforeManagerNotify2: '', - beforeManagerNotifyUser2: [], - expireBefore3: undefined, - beforeManagerNotify3: '', - beforeManagerNotifyUser3: [], - expireAfter1: undefined, - afterManagerNotify1: '', - afterManagerNotifyUser1: [], - expireAfter2: undefined, - afterManagerNotify2: '', - afterManagerNotifyUser2: [], - expireAfter3: undefined, - afterManagerNotify3: '', - afterManagerNotifyUser3: [], - notifyWx: 0, - notifyMobMsg: 0, - notifyMobMsgWay: '', - notifyMob: '', - notifyTime: '' - } - this.$emit('close') - }, - save() { - this.$refs.ruleForm.validate((valid) => { - if (valid) { - const params = Object.assign({}, this.formData) - let check1 = ['expireBefore1','expireBefore2','expireBefore3','expireAfter1','expireAfter2','expireAfter3'] - let check2 = ['beforeManagerNotifyUser1','beforeManagerNotifyUser2','beforeManagerNotifyUser3','afterManagerNotifyUser1','afterManagerNotifyUser2','afterManagerNotifyUser3'] - if(!check1.some(key=>params[key])){ - this.$message.error('璇峰~鍐欓璀︽椂闂�') - return - } - if(params.notifyWx===0&¶ms.notifyMobMsg===0){ - this.$message.error('璇疯缃璀︽柟寮�') - return - } - if(params.notifyMobMsg===1&&!check2.some(key=>params[key].length>0)&¶ms.notifyMob===''){ - this.$message.error('璇疯缃�氱煡浜哄憳') - return - } - if(params.notifyMobMsg===0&&!check2.some(key=>params[key].length>0)){ - this.$message.error('璇疯缃�氱煡浜哄憳') - return - } - if(params.notifyMobMsg===1&¶ms.notifyMobMsgWay===''){ - this.$message.error('璇疯缃煭淇″彂閫佹柟寮�') - return - } - this.loading = true - api[params.id ? 'upd' : 'add'](params).then(res => { - this.loading = false - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }).catch(() => { - this.loading = false - }) - } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') - } - }) - } - } -} -</script> -<style scoped lang="scss"> -h1 { - font-size: 18px; - color: #000; - font-weight: bold; - margin-bottom: 20px; - padding-left: 20px; -} -</style> diff --git a/admin-web/src/views/projectConfig/warningConfig/index.vue b/admin-web/src/views/projectConfig/warningConfig/index.vue deleted file mode 100644 index 2363542..0000000 --- a/admin-web/src/views/projectConfig/warningConfig/index.vue +++ /dev/null @@ -1,209 +0,0 @@ -<template> - <div class="app-container"> - <el-card class="box-card" shadow="never"> - <div class="filter-container" style="margin-bottom: 10px"> - <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> - </div> - <!--鍒楄〃--> - <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> - </el-card> - <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> - </div> -</template> - -<script> -import MyTableV2 from '@/components/myTable/myTableV2'; -import SettingIplatform from '@/utils/settingIplatform'; -import items from './items'; -import edit from './edit' -import {del, updStatus} from "@/api/projectConfig/warningConfig"; - -export default { - components: {MyTableV2, edit}, - data() { - return { - // 鎼滅储鏉′欢 - items: items, - filterFrom: { - projectName: '', - projectCode: '', - planTypeCode: '', - status: '1', - }, - //鏂板缂栬緫 - editSetting: { - title: '', - id: '', - show: false, - }, - //鑺傜偣璁剧疆 - nodeSetting: { - title: '鑺傜偣璁剧疆', - stageId: '', - show: false, - }, - // 琛ㄦ牸鏁版嵁 - table: { - showIndex: true, // 鏄惁鏄剧ず搴忓彿 - expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 - url: SettingIplatform.apiBaseURL + '/pc/p/temp/expiration/notify/list', // 璇锋眰鍦板潃 - // 宸ュ叿鏉� - tools: { - columnsCtrl: { - // 鍒楁帶鍒舵寜閽� - show: false, - }, - generalExport: { - // 閫氱敤瀵煎嚭鎸夐挳 - show: false, - }, - // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [ - { - name: '鏂板', - click: () => { - this.showAdd(null); - }, - }, - ], - }, - // 鍒椾俊鎭� - columns: [ - { - title: '妯℃澘鍚嶇О', field: 'tempExpirationNotifyName', align: 'left', - /*formatter: (row) => { - return { - value: row.projectName, - type: 'primary', - click: () => { - // 鐐瑰嚮浜嬩欢 - this.updState(row); - }, - } - }*/ - }, - {title: '缂栧彿', field: 'tempExpirationNotifyCode', align: 'center'}, - {title: '鎵�灞炴満鏋�', field: 'createOrgName', align: 'left'}, - { - title: '寰俊娑堟伅', field: 'notifyWx', align: 'center',width: 80, - formatter: (row) => { - return { - value: row.notifyWx === 1 ? '寮�' : '鍏�' - } - } - }, - { - title: '鐭俊', field: 'notifyMobMsg', align: 'center',width: 80, - formatter: (row) => { - return { - value: row.notifyMobMsg === 1 ? row.notifyMobMsgWay === 1 ? '鎵嬪姩' : '鑷姩' : '鍏�', - } - } - }, - { - field: 'status', - title: '鐘舵��', - align: 'center', - width: 80, - switch: (row) => { - return { - value: row.status === 1, // 寮� - label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� - click: () => { - // 鐐瑰嚮浜嬩欢 - this.updState(row); - }, - }; - }, - }, - ], - // 鎿嶄綔淇℃伅 - operation: { - show: true, // 鏄剧ず鎿嶄綔鍒� - width: 180, // 鍒楀 - attr: [ - { - title: '缂栬緫', - events: (row) => { - this.showAdd(row.id); - }, - }, - { - title: '鍒犻櫎', - events: (row) => { - this.handleDelete(row); - }, - }, - ], - }, - paging: { - show: false, // 鏄剧ず鍒嗛〉 - // 鍒嗛〉淇℃伅 - page: { - small: false, - pageNum: 1, - pageSize: 10, - total: 0, - }, - }, - }, - }; - }, - mounted() { - }, - methods: { - // 鏌ヨtable鍒楄〃 - search(pageNum) { - if (pageNum != undefined) { - this.$refs.myTable.search(pageNum); - } else { - this.$refs.myTable.search(); - } - }, - /*鎼滅储*/ - filterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params); - this.search(); - }, - //娣诲姞銆佺紪杈� - showAdd(id) { - let title = '娣诲姞'; - if (id != null) { - title = '缂栬緫'; - } - this.editSetting.id = id; - this.editSetting.title = title; - this.editSetting.show = true; - }, - /*寮�鍚叧闂�*/ - updState(row) { - let text = row.status === 0 ? "鍚敤" : "绂佺敤"; - this.$modal.confirm('纭瑕�' + text + '"' + row.tempExpirationNotifyName + '"妯℃澘鍚楋紵').then(() => { - let status = row.status === 1 ? 0 : 1 - updStatus({ - id: row.id, - status - }).then(res => { - if (res) { - row.status = row.status === 1 ? 0 : 1 - this.$modal.msgSuccess(text + "鎴愬姛"); - } - }) - }) - }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - this.$confirm('鏄惁纭鍒犻櫎"' + row.tempExpirationNotifyName + '"妯$増锛�', { - type: 'warning' - }).then(() => { - del({id: row.id}).then(res => { - this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - this.search() - }) - }) - }, - }, -}; -</script> - -<style scoped></style> diff --git a/admin-web/src/views/projectConfig/warningConfig/items.js b/admin-web/src/views/projectConfig/warningConfig/items.js deleted file mode 100644 index c2f2b21..0000000 --- a/admin-web/src/views/projectConfig/warningConfig/items.js +++ /dev/null @@ -1,45 +0,0 @@ - -import SettingIplatform from '@/utils/settingIplatform'; -export default [ - { - type: 'text', - dataIndex: 'projectName', - label: '妯℃澘鍚嶇О', - placeholder: '璇疯緭鍏�', - defaultValue: '' - }, - { - type: 'text', - dataIndex: 'projectCode', - label: '妯℃澘缂栧彿', - placeholder: '璇疯緭鍏�', - defaultValue: '' - }, - { - type: 'cascader', - dataIndex: 'planTypeCode', - label: '鎵�灞炴満鏋�', - placeholder: '璇烽�夋嫨', - options: [], - optionsConfig: { - url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/tree_fin_tenant' - } - }, - { - type: 'select', - dataIndex: 'status', - label: '鐘舵��', - placeholder: '璇烽�夋嫨', - defaultValue: '1', - options: [ - { - label: '鍚敤', - value: '1' - }, - { - label: '绂佺敤', - value: '0' - } - ] - } -] diff --git a/admin-web/src/views/stock/accessStock/outbound/index.vue b/admin-web/src/views/stock/accessStock/outbound/index.vue index b6ce027..e574460 100644 --- a/admin-web/src/views/stock/accessStock/outbound/index.vue +++ b/admin-web/src/views/stock/accessStock/outbound/index.vue @@ -12,50 +12,53 @@ <div class="table-tool-bar" style="margin-bottom: 15px;"> <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" /> </div> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> - <el-row v-if="list.length" class="card" :gutter="5"> - <el-col v-for="(item, index) in list" :key="index" class="cm-item"> - <el-card class="card-data"> - <div class="card-container"> - <div class="card-header"> - <div class="card-header-left"> - <span>鍑哄簱鍗曞彿锛�</span> - <span class="value">{{ item.businessFormCode }}</span> - </div> - <div class="card-header-right"> + <div> + <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> + <el-row v-if="list.length" class="card" :gutter="5"> + <el-col v-for="(item, index) in list" :key="index" class="cm-item"> + <el-card class="card-data"> + <div class="card-container"> + <div class="card-header"> + <div class="card-header-left"> + <span>鍑哄簱鍗曞彿锛�</span> + <span class="value">{{ item.businessFormCode }}</span> + </div> + <div class="card-header-right"> <el-button site="form" type="success" size="mini" @click="handleExport(item)" - >瀵煎嚭鍑哄簱鍗�</el-button + >瀵煎嚭鍑哄簱鍗�</el-button > - <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)" + <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)" >鏌ョ湅璇︽儏</el-button - > + > + </div> </div> - </div> - <div class="one-hed"> - <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.agencyName }}</div> - <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.operatorName }}</div> - <div class="box"> - <span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.dealTime | formatTime }} + <div class="one-hed"> + <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.agencyName }}</div> + <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.operatorName }}</div> + <div class="box"> + <span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.dealTime | formatTime }} + </div> </div> - </div> - <div class="card-end"> - <div v-for="(just, index) in item.formOutputTemplateInfoList" :key="index" class="item"> - <div class="name">{{ just.goodsName }}</div> - <div class="value-box"> - <div class="value-box-item"> - <span class="label">鏁伴噺锛�</span> - <span class="value">{{ just.count }}</span> - <span class="unit">{{ just.unit }}</span> + <div class="card-end"> + <div v-for="(just, index) in item.formOutputTemplateInfoList" :key="index" class="item"> + <div class="name">{{ just.goodsName }}</div> + <div class="value-box"> + <div class="value-box-item"> + <span class="label">鏁伴噺锛�</span> + <span class="value">{{ just.count }}</span> + <span class="unit">{{ just.unit }}</span> + </div> </div> </div> </div> </div> - </div> - </el-card> - </el-col> - </el-row> - <div class="no-data" v-else>鏆傛棤鏁版嵁</div> + </el-card> + </el-col> + </el-row> + <div class="no-data" v-else>鏆傛棤鏁版嵁</div> + </div> </div> + <el-pagination :small="false" :current-page="pageNum" diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue index e0d322f..002dd06 100644 --- a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue +++ b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue @@ -10,11 +10,13 @@ <el-row style="margin-top: 15px"> <el-col> <!--鍒楄〃--> - <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" /> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> </el-col> </el-row> <!--娣诲姞/缂栬緫寮圭獥--> - <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" /> + <!-- <detail/>--> + <component v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" + :is="activeDetail"></component> </el-card> </el-container> </el-container> @@ -25,23 +27,41 @@ import MyTableV2 from '@/components/myTable/myTableV2'; import MyButton from '@/components/myButton/myButton'; import SettingIplatform from '@/utils/settingIplatform'; -import detail from '../outbound/detail'; -import * as finsystenant from '@/api/baseSetting/finsystenant'; import myImport from '@/views/components/myImport'; -import { goodsTemplate, goodsModel } from '@/api/baseSetting/finsystenant'; -import { outputDtailList } from '@/api/stock/accessStock'; import * as DateFormatter from '@/utils/DateFormatter'; +import stockType from '@/utils/stockType'; +import detail from '../outbound/detail'; +import purchaseDetail from '@/views/stock/procure/purchaseOrder/detail.vue';// 閲囪喘鍗曡鎯� +import transferDetail from '@/views/stock/transfer/transferissue/detail.vue';// 璋冩嫧鍗曡鎯� +import inventoryDetail from '@/views/stock/inventorycount/inventorytask/detail.vue';// 鐩樼偣鍗曡鎯� +import scrapDetail from '@/views/stock/scrap/itemScrapping/detail.vue';// 鎶ュ簾鍗曡鎯� +import distributionDetail from '@/views/departmentitem/itemdis/distribution/detail.vue';// 鍒嗗彂鍗曡鎯� +import itemscrDetail from '@/views/departmentitem/itemscr/scrapping/detail.vue';// 閮ㄩ棬鎶ュ簾鍗曡鎯� +import returnNoteDetail from '@/views/departmentitem/itemret/returnNote/detail.vue';// 閮ㄩ棬閫�杩樺崟璇︽儏 export default { name: 'index', - components: { MyButton, MyTableV2, detail, myImport }, + components: { + MyButton, + MyTableV2, + detail, + myImport, + purchaseDetail, + transferDetail, + inventoryDetail, + scrapDetail, + distributionDetail, + itemscrDetail, + returnNoteDetail + }, data() { return { + activeDetail: '', // 鎼滅储妗� items: [ { type: 'text', - dataIndex: 'businessFormId', + dataIndex: 'businessFormCode', label: '鍗曞彿', placeholder: '璇疯緭鍏�', defaultValue: '', @@ -66,7 +86,7 @@ placeholder: '璇烽�夋嫨', defaultValue: '', options: [], - cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }], + cascader: [{key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId'}], optionsConfig: { label: 'goodsName', value: 'id', @@ -91,26 +111,26 @@ dataIndex: 'agencyId', label: '鏈烘瀯', placeholder: '璇烽�夋嫨', - optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null }, + optionsConfig: {url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null}, defaultValue: '', options: [], }, { type: 'text', - dataIndex: 'createdName', + dataIndex: 'createName', label: '鍒涘缓浜�', placeholder: '璇疯緭鍏�', defaultValue: '', }, { type: 'date-picker', - dataIndex: 'dealTimeStart', + dataIndex: 'startTime', label: '鏃堕棿', defaultValue: '', }, { type: 'date-picker', - dataIndex: 'dealTimeEnd', + dataIndex: 'endTime', label: '鑷�', defaultValue: '', }, @@ -155,28 +175,34 @@ }, // 鍒椾俊鎭� columns: [ - { title: '绫诲瀷', field: 'thisType', align: 'left' }, - { title: '鍗曞彿', field: 'businessFormId', align: 'center' }, - { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'center' }, - { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'center' }, - { title: '鍑哄叆搴撴暟閲�', field: 'thisCount', align: 'left' }, - { title: '閲戦', field: 'totalPrice', align: 'left' }, - { title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left' }, - { title: '鍒涘缓浜�', field: 'createdName', align: 'left' }, + { + title: '绫诲瀷', field: 'thisType', align: 'left', + formatter: (row) => { + let result = stockType(row) + return {value: result}; + }, + }, + {title: '鍗曞彿', field: 'businessFormCode', align: 'center', width: 130}, + {title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'left', minWidth: 130}, + {title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'left', minWidth: 130}, + {title: '鍑哄叆搴撴暟閲�', field: 'thisCount', align: 'center', width: 100}, + {title: '閲戦', field: 'totalPrice', align: 'center', width: 100}, + {title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left', minWidth: 130}, + {title: '鍒涘缓浜�', field: 'operatorName', align: 'left', width: 100}, { title: '鎿嶄綔鏃堕棿', field: 'dealTime', align: 'center', width: 160, formatter: (row) => { - return { value: DateFormatter.LongToDateTime(row.createTime) }; + return {value: DateFormatter.LongToDateTime(row.dealTime)}; }, }, ], // 鎿嶄綔淇℃伅 operation: { show: true, // 鏄剧ず鎿嶄綔鍒� - width: '150', // 鍒楀 + width: 100, // 鍒楀 attr: [ { title: '璇︽儏', @@ -197,12 +223,24 @@ }, }, }, + components: { + '1': 'purchaseDetail', + '2': 'returnNoteDetail', + '3': 'transferDetail', + '4': 'inventoryDetail', + '5': 'itemscrDetail', + '6': 'transferDetail', + '7': 'inventoryDetail', + '8': 'scrapDetail', + '9': 'detail', + } }; }, created() { }, methods: { showDetail(row) { + this.activeDetail = this.components[row.mixType] this.detailSetting.id = row.id; this.detailSetting.info = JSON.stringify(row); this.detailSetting.title = '璇︽儏'; @@ -211,7 +249,7 @@ // 鏌ヨtable鍒楄〃 search(pageNum) { if (pageNum != undefined) { - this.$refs.myTable.search(pageNum); + this.$refs.myTable.search({pageNum}); } else { this.$refs.myTable.search(); } diff --git a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue index 6b4a2a1..e5afac4 100644 --- a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue +++ b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue @@ -229,7 +229,6 @@ }; // 閲戦鏍¢獙 var checkPrice = (rule, value, callback) => { - console.log(value); if (!value) { return callback(new Error('璇疯緭鍏�')); } @@ -241,7 +240,6 @@ }; // 鏁伴噺鏍¢獙 var checkCounts = (rule, value, callback) => { - console.log(value); if (!value) { return callback(new Error('璇疯緭鍏�')); } @@ -314,7 +312,6 @@ title: '涓婁紶', max: 20, // 鏈�澶уぇ灏忥紝鍗曚綅M num: 10, // 鏀寔涓婁紶鍥剧墖涓暟 - accept: '.jpg,.png', // 闄愬埗鏍煎紡 tip: '', // 鎻愮ず 榛樿锛歚鍙兘涓婁紶${this.defaultSettings.num}涓�${this.defaultSettings.accept}鏂囦欢锛屼笖涓嶈秴杩�${this.defaultSettings.max}kb` uploadUrl: getUploadUrl(), // 涓婁紶璺緞 multiple: true, // 鏄惁鏀寔鎵归噺涓婁紶 @@ -504,7 +501,6 @@ this.$refs['ruleForm'].validate((valid) => { if (valid) { this.loading = true; - console.log('formData', this.formData); if (!this.setting.id) { procureAdd(this.formData) .then((res) => { @@ -513,7 +509,6 @@ this.$emit('search'); }) .catch((err) => { - console.log('create err', err); this.loading = false; this.$message.error('淇濆瓨澶辫触'); }); @@ -525,7 +520,6 @@ this.$emit('search'); }) .catch((err) => { - console.log('edit err', err); this.loading = false; this.$message.error('淇濆瓨澶辫触'); }); diff --git a/admin-web/src/views/stock/procure/purchaseOrder/index.vue b/admin-web/src/views/stock/procure/purchaseOrder/index.vue index e3e3865..110ee7a 100644 --- a/admin-web/src/views/stock/procure/purchaseOrder/index.vue +++ b/admin-web/src/views/stock/procure/purchaseOrder/index.vue @@ -14,7 +14,7 @@ <my-button name="瀵煎叆" @click="importSetting.dialogShow = true" site="tools" size="medium" /> </div> <div v-loading="loading" style="margin-bottom: 15px"> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 360}px` }"> + <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }"> <el-row v-if="list.length" class="card" :gutter="5"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> diff --git a/admin-web/src/views/stock/scrap/itemScrapping/index.vue b/admin-web/src/views/stock/scrap/itemScrapping/index.vue index 9514920..97373c7 100644 --- a/admin-web/src/views/stock/scrap/itemScrapping/index.vue +++ b/admin-web/src/views/stock/scrap/itemScrapping/index.vue @@ -12,7 +12,7 @@ <div class="table-tool-bar" style="margin-bottom: 15px"> <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" /> </div> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }"> + <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }"> <el-row class="card" :gutter="5" v-loading="loading"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> diff --git a/admin-web/src/views/stock/transfer/transferApplication/index.vue b/admin-web/src/views/stock/transfer/transferApplication/index.vue index b514269..8e1a11a 100644 --- a/admin-web/src/views/stock/transfer/transferApplication/index.vue +++ b/admin-web/src/views/stock/transfer/transferApplication/index.vue @@ -12,7 +12,7 @@ <div class="table-tool-bar" style="margin-bottom: 15px"> <my-button name="璋冩嫧鐢宠" icon="el-icon-plus" @click="handleAdd" site="tools" size="medium" /> </div> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> + <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> <el-row v-if="list.length" class="card" :gutter="5"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> diff --git a/admin-web/src/views/stock/transfer/transferissue/index.vue b/admin-web/src/views/stock/transfer/transferissue/index.vue index c151048..f1a4aea 100644 --- a/admin-web/src/views/stock/transfer/transferissue/index.vue +++ b/admin-web/src/views/stock/transfer/transferissue/index.vue @@ -9,7 +9,7 @@ <el-row style="margin-top: 15px"> <el-col> <!--鍒楄〃--> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> + <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> <el-row v-if="list.length" class="card" :gutter="5"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> -- Gitblit v1.9.1