From 8130823e7e4c36e1c10705c734b0b60b5f193958 Mon Sep 17 00:00:00 2001 From: zhy <luhan1008611> Date: 星期三, 25 十月 2023 17:30:36 +0800 Subject: [PATCH] feat: 本地修改测试 --- admin-web/src/views/foundation/classification/edit.vue | 134 + admin-web/src/views/systemManger/server/user/index.vue | 29 admin-web/src/views/foundation/store/edit.vue | 111 + admin-web/src/views/foundation/classification/index.vue | 280 +++ admin-web/src/utils/settingIplatform.js | 5 admin-web/src/views/foundation/classification/items.js | 47 admin-web/src/views/stock/transfer/transferApplication/index.vue | 457 +++++ admin-web/src/views/foundation/store/index.vue | 307 +++ admin-web/src/views/systemSetting/department/items.js | 33 admin-web/src/views/foundation/material/edit.vue | 130 + admin-web/src/views/stock/accessStock/outbound/index.vue | 449 ++++ admin-web/src/views/systemManger/org/index.vue | 13 admin-web/src/views/systemSetting/dict/index.vue | 32 admin-web/public/static/config.js | 5 admin-web/src/views/systemSetting/department/index.vue | 405 ++++ admin-web/src/views/stock/transfer/transferdetails/index.vue | 282 +++ admin-web/src/views/systemSetting/role/index.vue | 6 admin-web/src/views/stock/procure/receiptDetails/index.vue | 280 +++ admin-web/src/views/stock/accessStock/outboundDetails/edit.vue | 111 + admin-web/src/views/stock/procure/purchaseOrder/index.vue | 457 +++++ admin-web/src/views/stock/transfer/transferissue/index.vue | 457 +++++ admin-web/src/components/myTable/myTableV2.vue | 2 admin-web/README.md | 61 admin-web/src/views/systemSetting/department/data.vue | 427 ++++ admin-web/src/views/stock/transfer/transferdetails/edit.vue | 111 + admin-web/src/views/stock/procure/receiptDetails/edit.vue | 111 + admin-web/src/views/systemManger/server/user/items.js | 4 admin-web/src/views/stock/accessStock/outboundDetails/index.vue | 280 +++ admin-web/src/views/foundation/material/index.vue | 342 +++ 29 files changed, 5,332 insertions(+), 36 deletions(-) diff --git a/admin-web/README.md b/admin-web/README.md index d7977b7..dd5a982 100644 --- a/admin-web/README.md +++ b/admin-web/README.md @@ -232,4 +232,63 @@ ``` "highlight.js": "10.7.3", - +## 璺敱鏂囦欢鍚嶇О +# 搴撳瓨绠$悊/鍑哄叆搴撶鐞� +<!-- 鍑哄簱绠$悊 --> +/stock/accessStock/outbound +<!-- 鍑哄叆搴撴槑缁� --> +/stock/accessStock/outboundDetails +# 搴撳瓨绠$悊/閲囪喘绠$悊 +<!-- 閲囪喘鍗� --> +/stock/procure/purchaseOrder +<!-- 閲囪喘鍏ュ簱鏄庣粏 --> +/stock/procure/receiptDetails +# 搴撳瓨绠$悊/璋冩嫧绠$悊 +<!-- 璋冩嫧鐢宠 --> +/stock/transfer/transferApplication +<!-- 璋冩嫧鍑哄簱 --> +/stock/transfer/transferissue +<!-- 璋冩嫧鏄庣粏 --> +/stock/transfer/transferdetails +# 搴撳瓨绠$悊/搴撳瓨鐩樼偣 +<!-- 鐩樼偣浠诲姟 --> +/stock/inventorycount/inventorytask +<!-- 寮傚父鏄庣粏 --> +/stock/inventorycount/exceptionDetails +# 搴撳瓨绠$悊/鎶ュ簾绠$悊 +<!-- 鐗╁搧鎶ュ簾 --> +/stock/scrap/itemScrapping +<!-- 鎶ュ簾鏄庣粏 --> +/stock/scrap/scrapDetails +# 搴撳瓨绠$悊/鍙拌处鏌ヨ +<!-- 搴撳瓨鏌ヨ --> +/stock/ledger/inventoryQuery +<!-- 搴撳瓨棰勮璁剧疆 --> +/stock/ledger/inventoryAlert +<!-- 棰勮鏌ヨ --> +/stock/ledger/alertQuery +<!-- 鍙拌处鏌ヨ --> +/stock/ledger/ledgerQuery +# 閮ㄩ棬鐗╁搧绠$悊/鐗╁搧鍒嗗彂 +<!-- 鐗╁搧鍒嗗彂 --> +/departmentitem/itemdis/distribution +<!-- 鍒嗗彂鏄庣粏 --> +/departmentitem/itemdis/disDetails +# 閮ㄩ棬鐗╁搧绠$悊/鐗╁搧閫�鍥� +<!-- 閫�鍥炲崟 --> +/departmentitem/itemret/returnNote +<!-- 閫�鍥炴槑缁� --> +/departmentitem/itemret/retDetails +# 閮ㄩ棬鐗╁搧绠$悊/鐗╁搧鎶ュ簾 +<!-- 鐗╁搧鎶ュ簾 --> +/departmentitem/itemscr/scrapping +<!-- 鎶ュ簾鏄庣粏 --> +/departmentitem/itemscr/scrappDetails +# 閮ㄩ棬鐗╁搧绠$悊/鍙拌处鏌ヨ +<!-- 鐗╁搧鏌ヨ --> +/departmentitem/ledgerquy/itemQuy +<!-- 鍙拌处鏌ヨ --> +/departmentitem/ledgerquy/ledQuy +# 缁熻鎶ヨ〃 +<!-- 鐗╁搧缁熻琛� --> +/statisticalreport/itemReport \ No newline at end of file diff --git a/admin-web/public/static/config.js b/admin-web/public/static/config.js index 96f2e66..40ba56b 100644 --- a/admin-web/public/static/config.js +++ b/admin-web/public/static/config.js @@ -9,11 +9,12 @@ // 鏈嶅姟鍣ㄥ湴鍧� httpUrl: VUE_APP_API_URL, // 涓婁紶璺緞 - ftpUrl: 'http://172.16.60.209:8082/progress',//寮�鍙� + 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.90:8082/progress',//寮�鍙� + apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, // socket杩炴帴 wsSocketUrl: VUE_APP_WS_URL, diff --git a/admin-web/src/components/myTable/myTableV2.vue b/admin-web/src/components/myTable/myTableV2.vue index 5857918..faeb6c2 100644 --- a/admin-web/src/components/myTable/myTableV2.vue +++ b/admin-web/src/components/myTable/myTableV2.vue @@ -365,7 +365,7 @@ */ search(param) { this.$nextTick(() => { - this.myTable.loading = true + // this.myTable.loading = true const params = Object.assign({}, this.filter) if(this.myTable.paging.show){ params.pageSize = this.myTable.paging.page.pageSize diff --git a/admin-web/src/utils/settingIplatform.js b/admin-web/src/utils/settingIplatform.js index 3743ccf..22e6d80 100644 --- a/admin-web/src/utils/settingIplatform.js +++ b/admin-web/src/utils/settingIplatform.js @@ -8,11 +8,12 @@ // 鏈嶅姟鍣ㄥ湴鍧� httpUrl: VUE_APP_API_URL, // 涓婁紶璺緞 - ftpUrl: 'http://172.16.60.209:8082/progress',//寮�鍙� + 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.90:8082/progress',//寮�鍙� + apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, // socket杩炴帴 wsSocketUrl: VUE_APP_WS_URL, diff --git a/admin-web/src/views/foundation/classification/edit.vue b/admin-web/src/views/foundation/classification/edit.vue new file mode 100644 index 0000000..137165d --- /dev/null +++ b/admin-web/src/views/foundation/classification/edit.vue @@ -0,0 +1,134 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="涓婄骇鍒嗙被" prop="code"> + <el-input v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鍒嗙被鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="绫诲埆" prop="name"> + <!-- <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> --> + <el-select v-model="formData.planTypeCode" placeholder="" clearable style="width: 100%"> + <el-option + v-for="item in options" + :key="item.code" + :label="item.label" + :value="item.code"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="椤哄簭" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-switch + v-model="formData.status" + active-color="#0d997c" + inactive-color="#C0CCDA"> + </el-switch> + </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 finsystenant from '@/api/baseSetting/finsystenant' + +export default { + components: {winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + options:[ + { + code: 1, + label:'A' + }, + { + code: 2, + label:'B' + }, + { + code: 3, + label:'C' + } + ], + formData: { + code: '', + name: '', + status: true, + summary: '', + planTypeCode:'' + }, + rules: { + code: [ + {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'} + ], + name: [ + {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'} + ] + } + } + }, + created() { + if(this.setting.info){ + this.formData = Object.assign({},JSON.parse(this.setting.info)) + } + }, + methods: { + getEditInfo(id){ + + }, + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if(this.setting.id){ + // 缂栬緫鎺ュ彛 + finsystenant.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + }else{ + params.orgId = this.setting.orgId + finsystenant.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/admin-web/src/views/foundation/classification/index.vue b/admin-web/src/views/foundation/classification/index.vue new file mode 100644 index 0000000..026e52c --- /dev/null +++ b/admin-web/src/views/foundation/classification/index.vue @@ -0,0 +1,280 @@ +<template> + <div class="app-container"> + <el-container> + <el-card shadow="never" style="width: 240px;margin-right: 15px"> + <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> + </el-card> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import myTree from '@/components/myTree/index' +import MyTableV2 from "@/components/myTable/myTableV2"; +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' +import edit from './edit' +import * as finsystenant from '@/api/baseSetting/finsystenant' +import myImport from '@/views/components/myImport' +import {updStatus} from "@/api/baseSetting/finsystenant"; +import {getBaseUrl, getUploadUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, MyTableV2, edit, myTree, myImport}, + data() { + return { + // 鎼滅储妗� + items: items, + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '鍒嗙被鍚嶇О', field: 'category_Name', align: 'center'}, + {title: '绫诲埆', field: 'classification', align: 'left'}, + {title: '鏄剧ず椤哄簭', field: 'order_Number', align: 'center', width: '80px'}, + { + field: 'states', + title: '鐘舵��', + align: 'center', + width: 100, + switch: row => { + const result = {} + if (row.status == 1) { + Object.assign(result, { + value: true, // 寮� + label: '鏄�', // 寮�鐨勬弿杩� + click: () => { // 鐐瑰嚮浜嬩欢 + this.updState(row) + } + }) + } else { + Object.assign(result, { + value: false, // 鍏� + label: '鍚�', // 鍏崇殑鎻忚堪 + click: () => { + this.updState(row) + } + }) + } + return result + } + } + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '150', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAudit(row); + }, + }, + { + title: '鍒犻櫎', + events: (row) => { + this.del(row); + }, + } + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData() + }, + methods: { + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.getTree().then(res => { + const content = res || [] + this.treeDataList.splice(0, this.treeDataList.length) + this.treeDataList = content + if (content.length > 0) { + this.importSetting.fileSettings.data = {pid: content[0].id} + } + }) + }, + updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.status = row.status == 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + del(row) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�') + .then(function () { + finsystenant.del({id: row.id}).then((res) => { + }); + }) + .then((res) => { + this.$message.success('鍒犻櫎鎴愬姛锛�'); + this.search() + }) + .catch(() => { + }); + }, + showAdd() { + // if (!this.editSetting.orgId) { + // this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯') + // } else { + this.editSetting.id = null; + this.editSetting.info = null; + this.editSetting.title = '鏂板'; + this.editSetting.show = true; + // } + }, + showAudit(row) { + this.editSetting.id = row.id; + this.editSetting.info = JSON.stringify(row); + this.editSetting.title = '缂栬緫'; + this.editSetting.show = true; + }, + nodeClick(param) { + param = param || {} + this.p = Object.assign({}, { + id: param.id, + name: param.name + }) + if (this.p.id != undefined && this.p.id != null) { + this.filterFrom.tenantId = this.p.id + this.editSetting.orgId = this.p.id + } else { + this.filterFrom.tenantId = null + this.editSetting.orgId = null + } + this.importSetting.fileSettings.data = {pid: param.id} + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/admin-web/src/views/foundation/classification/items.js b/admin-web/src/views/foundation/classification/items.js new file mode 100644 index 0000000..82b5b87 --- /dev/null +++ b/admin-web/src/views/foundation/classification/items.js @@ -0,0 +1,47 @@ +export default [ + { + type: 'text', + dataIndex: 'name', + label: '鍒嗙被鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '绫诲埆', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: 'A', + value: '1' + }, + { + label: 'B', + value: '2' + }, + { + label: 'C', + value: '3' + } + ] + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/admin-web/src/views/foundation/material/edit.vue b/admin-web/src/views/foundation/material/edit.vue new file mode 100644 index 0000000..1d1ad94 --- /dev/null +++ b/admin-web/src/views/foundation/material/edit.vue @@ -0,0 +1,130 @@ +<template> + <win-md :title="setting.title" @close="close" :width="'800px'"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="鐗╁搧缂栧彿"> + <el-input v-model="formData.code88" disabled clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐗╁搧鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item style="margin-left: -100px;" v-for="(m, i) in formData.code"> + <el-form-item label="瑙勬牸鍨嬪彿" prop="name" style="float: left;"> + <el-input v-model="m.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鍗曚綅" prop="name" style="float: left;"> + <el-input v-model="m.code" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <my-button name="鏂板鍨嬪彿" type="" @click="addCode"/> + <my-button name="鍒犻櫎" type="" @click="delCode(i)"/> + </el-form-item> + <el-form-item label="鐘舵��"> + <el-switch + v-model="formData.status" + active-color="#0d997c" + inactive-color="#C0CCDA"> + </el-switch> + </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-md> +</template> + +<script> +import winMd from '@/components/win/win-md' +import myButton from '@/components/myButton/myButton' +import * as finsystenant from '@/api/baseSetting/finsystenant' + +export default { + components: {winMd, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + formData: { + radio1: '', + code: '', + name: '', + status: true, + summary: '', + code:[ + { + name:'12', + code:'13' + }, + ] + }, + rules: { + name: [ + {required: true, message: '璇疯緭鍏ョ墿鍝佸悕绉�', trigger: 'blur'} + ] + } + } + }, + created() { + if(this.setting.info){ + this.formData = Object.assign({},JSON.parse(this.setting.info)) + } + }, + methods: { + addCode(){ + this.formData.code.push( + { + name:'', + code:'' + } + ) + }, + delCode(index){ + this.formData.code.splice(index, 1) + }, + getEditInfo(id){ + + }, + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if(this.setting.id){ + // 缂栬緫鎺ュ彛 + finsystenant.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + }else{ + params.orgId = this.setting.orgId + finsystenant.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/admin-web/src/views/foundation/material/index.vue b/admin-web/src/views/foundation/material/index.vue new file mode 100644 index 0000000..167fd9a --- /dev/null +++ b/admin-web/src/views/foundation/material/index.vue @@ -0,0 +1,342 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import myTree from '@/components/myTree/index' +import MyTableV2 from "@/components/myTable/myTableV2"; +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import edit from './edit' +import * as finsystenant from '@/api/baseSetting/finsystenant' +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, MyTableV2, edit, myTree, myImport}, + data() { + return { + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'goods_Name', + label: '鐗╁搧鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'goods_Code', + label: '鐗╁搧缂栧彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '绫诲埆', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: 'A', + value: '1' + }, + { + label: 'B', + value: '2' + }, + { + label: 'C', + value: '3' + } + ] + }, + { + type: 'select', + dataIndex: 'status', + label: '閲囪喘绫诲埆', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍏ㄩ儴', + value: '1' + }, + { + label: '鑷噰', + value: '2' + }, + { + label: '闆嗛噰', + value: '3' + } + ] + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } + ], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + { + name: '瀵煎叆', + click: () => { + this.importOrg(); + }, + } + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '鐗╁搧缂栧彿', field: 'goods_Code', align: 'center'}, + {title: '鐗╁搧鍚嶇О', field: 'goods_Name', align: 'center'}, + {title: '鍒嗙被', field: 'classification', align: 'center'}, + {title: '绫诲埆', field: 'states', align: 'center'}, + {title: '閲囪喘绫诲瀷', field: 'category_id', align: 'center'}, + {title: '鎵�灞炴満鏋�', field: 'agency_Name', align: 'center'}, + { + title: '鍒涘缓鏃堕棿', + field: 'create_Date', + align: 'center', + width: 160, + formatter: (row) => { + return {value: DateFormatter.LongToDateTime(row.create_Date)}; + }, + }, + { + field: 'states', + title: '鐘舵��', + align: 'center', + width: 100, + switch: row => { + const result = {} + if (row.status == 1) { + Object.assign(result, { + value: true, // 寮� + label: '鏄�', // 寮�鐨勬弿杩� + click: () => { // 鐐瑰嚮浜嬩欢 + this.updState(row) + } + }) + } else { + Object.assign(result, { + value: false, // 鍏� + label: '鍚�', // 鍏崇殑鎻忚堪 + click: () => { + this.updState(row) + } + }) + } + return result + } + } + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '150', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAudit(row); + }, + }, + { + title: '鍒犻櫎', + events: (row) => { + this.del(row); + }, + }, + { + title: '瑙勬牸鍨嬪彿', + events: (row) => { + this.showAudit(row); + }, + }, + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + }, + methods: { + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.status = row.status == 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + del(row) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�') + .then(function () { + finsystenant.del({id: row.id}).then((res) => { + }); + }) + .then((res) => { + this.$message.success('鍒犻櫎鎴愬姛锛�'); + this.search() + }) + .catch(() => { + }); + }, + showAdd() { + // if (!this.editSetting.orgId) { + // this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯') + // } else { + this.editSetting.id = null; + this.editSetting.info = null; + this.editSetting.title = '鏂板'; + this.editSetting.show = true; + // } + }, + showAudit(row) { + this.editSetting.id = row.id; + this.editSetting.info = JSON.stringify(row); + this.editSetting.title = '缂栬緫'; + this.editSetting.show = true; + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/admin-web/src/views/foundation/store/edit.vue b/admin-web/src/views/foundation/store/edit.vue new file mode 100644 index 0000000..37b0db9 --- /dev/null +++ b/admin-web/src/views/foundation/store/edit.vue @@ -0,0 +1,111 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="缂栧彿" prop="code"> + <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鍦板潃" > + <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-switch + v-model="formData.status" + active-color="#0d997c" + inactive-color="#C0CCDA"> + </el-switch> + </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 finsystenant from '@/api/baseSetting/finsystenant' + +export default { + components: {winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + formData: { + code: '', + name: '', + status: true, + summary: '', + }, + rules: { + code: [ + {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'} + ], + name: [ + {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'} + ], + status: [ + {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'} + ] + } + } + }, + created() { + if(this.setting.info){ + this.formData = Object.assign({},JSON.parse(this.setting.info)) + } + }, + methods: { + getEditInfo(id){ + + }, + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if(this.setting.id){ + // 缂栬緫鎺ュ彛 + finsystenant.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + }else{ + params.orgId = this.setting.orgId + finsystenant.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/admin-web/src/views/foundation/store/index.vue b/admin-web/src/views/foundation/store/index.vue new file mode 100644 index 0000000..3f7a463 --- /dev/null +++ b/admin-web/src/views/foundation/store/index.vue @@ -0,0 +1,307 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyTableV2 from "@/components/myTable/myTableV2"; +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import edit from './edit' +import * as finsystenant from '@/api/baseSetting/finsystenant' +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, MyTableV2, edit, myImport}, + data() { + return { + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '浠撳簱鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '鍚嶇О浠撳簱', field: 'name', align: 'left',}, + {title: '缂栧彿', field: 'code', align: 'center'}, + {title: '绫诲瀷', field: 'lv', align: 'center', }, + {title: '鍦板潃', field: 'lv', align: 'center', }, + {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',}, + { + field: 'belongProvince', + title: '鐘舵��', + align: 'center', + width: 100, + switch: row => { + const result = {} + if (row.status == 1) { + Object.assign(result, { + value: true, // 寮� + label: '鏄�', // 寮�鐨勬弿杩� + click: () => { // 鐐瑰嚮浜嬩欢 + this.updState(row) + } + }) + } else { + Object.assign(result, { + value: false, // 鍏� + label: '鍚�', // 鍏崇殑鎻忚堪 + click: () => { + this.updState(row) + } + }) + } + return result + } + } + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '150', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAudit(row); + }, + }, + { + title: '鍒犻櫎', + events: (row) => { + this.del(row); + }, + }, + { + title: '浠撳簱鍛�', + events: (row) => { + this.showAudit(row); + }, + } + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData() + }, + methods: { + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.getTree().then(res => { + const content = res || [] + this.treeDataList.splice(0, this.treeDataList.length) + this.treeDataList = content + if (content.length > 0) { + this.importSetting.fileSettings.data = {pid: content[0].id} + } + }) + }, + updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.status = row.status == 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + del(row) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�') + .then(function () { + finsystenant.del({id: row.id}).then((res) => { + }); + }) + .then((res) => { + this.$message.success('鍒犻櫎鎴愬姛锛�'); + this.search() + }) + .catch(() => { + }); + }, + showAdd() { + // if (!this.editSetting.orgId) { + // this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯') + // } else { + this.editSetting.id = null; + this.editSetting.info = null; + this.editSetting.title = '鏂板'; + this.editSetting.show = true; + // } + }, + showAudit(row) { + this.editSetting.id = row.id; + this.editSetting.info = JSON.stringify(row); + this.editSetting.title = '缂栬緫'; + this.editSetting.show = true; + }, + nodeClick(param) { + param = param || {} + this.p = Object.assign({}, { + id: param.id, + name: param.name + }) + if (this.p.id != undefined && this.p.id != null) { + this.filterFrom.tenantId = this.p.id + this.editSetting.orgId = this.p.id + } else { + this.filterFrom.tenantId = null + this.editSetting.orgId = null + } + this.importSetting.fileSettings.data = {pid: param.id} + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/admin-web/src/views/stock/accessStock/outbound/index.vue b/admin-web/src/views/stock/accessStock/outbound/index.vue new file mode 100644 index 0000000..ea1d5b0 --- /dev/null +++ b/admin-web/src/views/stock/accessStock/outbound/index.vue @@ -0,0 +1,449 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-button name="鏂板" @click="addtable" site="form" /> + <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}"> + <el-row class="card" + :gutter="5"> + <el-col v-for="(item, index) in proData" :key="index" class="cm-item"> + <el-card class="card-data"> + <div class="card-container"> + <div class="hed-one">鍑哄簱鍗曞彿锛歿{ item.order_no }}</div> + <div class="one-hed"> + <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.customer_name }}</div> + </div> + <div class="card-end"> + <div v-for="(just, index) in item.data" class="two-end"> + <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div> + </div> + </div> + </div> + <div class="card-but"> + <my-button name="鏌ョ湅璇︽儏" site="form" /> + <my-button name="瀵煎嚭鍑哄簱鍗�" site="form" /> + </div> + </el-card> + </el-col> + </el-row> + </div> + <el-pagination + :small="false" + :current-page="1" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="10" + layout="total, sizes, prev, pager, next, jumper" + :total="0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <el-dialog title="鏂板鍑哄簱" :close-on-click-modal="false" :visible.sync="adddialog" width="60%" > + <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px"> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="24"> + <el-form-item label="鍑哄簱鎵嬬画" prop="name"> + 浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢 + </el-form-item> + </el-col> + </el-row> + <div style="position: relative;"> + <div style="background-color: #F9F9F9;width: 90%;"> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-table :data="formData.tableData" height="100%" :stripe="true"> + <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column> + <el-table-column prop="time1" label="鍗曚綅" align="center"> </el-table-column> + <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column> + <el-table-column prop="time2" label="鍑哄簱鏁伴噺" align="center"> </el-table-column> + </el-table> + </div> + <div style="position: absolute;right: 0;top: 152px;"> + <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/> + <my-button name="鏂板鐗╁搧" site="form"/> + </div> + </div> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="纭畾" site="form" /> + <my-button name="鍙栨秷" site="form" @click="adddialog = false"/> + </div> + </el-dialog> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, myImport}, + data() { + return { + + adddialog: false, + formData:{ + tableData:[ + { + projectName:'555' + }, + { + projectName:'444' + } + ], + }, + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '鍑哄簱鍗曞彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鐗╁搧鍚嶇О', + placeholder: '鍙ā绯婃悳绱�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鍒涘缓浜�', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val1', + label: '鍑哄簱鏃堕棿', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val2', + label: '鑷�', + defaultValue: '' + }, + // { + // type: 'select', + // dataIndex: 'status', + // label: '鐘舵��', + // placeholder: '璇烽�夋嫨', + // defaultValue: '1', + // options: [ + // { + // label: '鍚敤', + // value: '1' + // }, + // { + // label: '绂佺敤', + // value: '0' + // } + // ] + // } + ], + proData: [ + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + } + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + } + }, + computed: { + clientHeight () { + return document.documentElement.clientHeight + }, + }, + created() { + }, + methods: { + handleSizeChange(){}, + handleCurrentChange(){}, + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + + addtable() { + this.adddialog = true + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + // this.$refs.myTable.search(pageNum) + } else { + // this.$refs.myTable.search() + } + }, + fifterForm(params) { + console.log(params,'555'); + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> +.card { + display: flex; + flex-wrap: wrap; + margin: 0px !important; + .cm-item { + width: 100%; + } + .cm-item /deep/ .el-card__body { + padding: 10px; + } +} +.card-data{ + margin-top: 8px; + .card-container{ + display: inline-block; + width: 70%; + .hed-one{ + color: #2298EE; + font-size: 18px; + } + .one-hed{ + margin-top: 15px; + .box{ + display: inline-block; + margin-right: 20px; + } + } + .span-two{ + color: #83919e; + font-size: 14px; + } + .card-end{ + font-size: 14px; + color: #3d3d3d; + margin-top: 15px; + display: flex; + flex-wrap: wrap; + .two-end{ + width: calc(33.33% - 20px); + margin-bottom: 15px; + } + } + + } + .card-but{ + display: inline-block; + } + .end{ + display: inline-block; + } + +} + +</style> diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/edit.vue b/admin-web/src/views/stock/accessStock/outboundDetails/edit.vue new file mode 100644 index 0000000..37b0db9 --- /dev/null +++ b/admin-web/src/views/stock/accessStock/outboundDetails/edit.vue @@ -0,0 +1,111 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="缂栧彿" prop="code"> + <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鍦板潃" > + <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-switch + v-model="formData.status" + active-color="#0d997c" + inactive-color="#C0CCDA"> + </el-switch> + </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 finsystenant from '@/api/baseSetting/finsystenant' + +export default { + components: {winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + formData: { + code: '', + name: '', + status: true, + summary: '', + }, + rules: { + code: [ + {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'} + ], + name: [ + {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'} + ], + status: [ + {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'} + ] + } + } + }, + created() { + if(this.setting.info){ + this.formData = Object.assign({},JSON.parse(this.setting.info)) + } + }, + methods: { + getEditInfo(id){ + + }, + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if(this.setting.id){ + // 缂栬緫鎺ュ彛 + finsystenant.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + }else{ + params.orgId = this.setting.orgId + finsystenant.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue new file mode 100644 index 0000000..2936cd9 --- /dev/null +++ b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue @@ -0,0 +1,280 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyTableV2 from "@/components/myTable/myTableV2"; +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import edit from './edit' +import * as finsystenant from '@/api/baseSetting/finsystenant' +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, MyTableV2, edit, myImport}, + data() { + return { + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '鍗曞彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '绫诲瀷', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + }, + { + type: 'text', + dataIndex: 'name', + label: '鐗╁搧鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鍒涘缓浜�', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '绫诲瀷', field: 'name', align: 'left',}, + {title: '鍗曞彿', field: 'code', align: 'center'}, + {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', }, + {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', }, + {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',}, + {title: '閲戦', field: 'summary', align: 'left',}, + {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',}, + {title: '鍒涘缓浜�', field: 'summary', align: 'left',}, + {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',}, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '150', // 鍒楀 + attr: [ + { + title: '璇︽儏', + events: (row) => { + this.showAudit(row); + }, + }, + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData() + }, + methods: { + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.getTree().then(res => { + const content = res || [] + this.treeDataList.splice(0, this.treeDataList.length) + this.treeDataList = content + if (content.length > 0) { + this.importSetting.fileSettings.data = {pid: content[0].id} + } + }) + }, + updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.status = row.status == 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + del(row) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�') + .then(function () { + finsystenant.del({id: row.id}).then((res) => { + }); + }) + .then((res) => { + this.$message.success('鍒犻櫎鎴愬姛锛�'); + this.search() + }) + .catch(() => { + }); + }, + showAdd() { + // if (!this.editSetting.orgId) { + // this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯') + // } else { + this.editSetting.id = null; + this.editSetting.info = null; + this.editSetting.title = '鏂板'; + this.editSetting.show = true; + // } + }, + showAudit(row) { + this.editSetting.id = row.id; + this.editSetting.info = JSON.stringify(row); + this.editSetting.title = '缂栬緫'; + this.editSetting.show = true; + }, + nodeClick(param) { + param = param || {} + this.p = Object.assign({}, { + id: param.id, + name: param.name + }) + if (this.p.id != undefined && this.p.id != null) { + this.filterFrom.tenantId = this.p.id + this.editSetting.orgId = this.p.id + } else { + this.filterFrom.tenantId = null + this.editSetting.orgId = null + } + this.importSetting.fileSettings.data = {pid: param.id} + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/admin-web/src/views/stock/procure/purchaseOrder/index.vue b/admin-web/src/views/stock/procure/purchaseOrder/index.vue new file mode 100644 index 0000000..e5f7a65 --- /dev/null +++ b/admin-web/src/views/stock/procure/purchaseOrder/index.vue @@ -0,0 +1,457 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-button name="鏂板" @click="addtable" site="form" /> + <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}"> + <el-row class="card" + :gutter="5"> + <el-col v-for="(item, index) in proData" :key="index" class="cm-item"> + <el-card class="card-data"> + <div class="card-container"> + <div class="hed-one"> <span>鍏ュ簱鍗曞彿锛歿{ item.order_no }}</span><span style="margin-left: 20px;"><el-button type="warning" plain size="mini">寰呭叆搴�</el-button></span></div> + <div class="one-hed"> + <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鍏ュ簱鏃堕棿锛�</span>{{ item.customer_name }}</div> + </div> + <div class="card-end"> + <div v-for="(just, index) in item.data" class="two-end"> + <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div> + </div> + </div> + </div> + <div class="card-but"> + <div> + <my-button style="width: 120px;" name="缂栬緫" site="form" /> + <my-button style="width: 120px;" name="鍏ュ簱" site="form" /> + </div> + <div style="margin-top: 10px;"> + <my-button style="width: 120px;" name="鍒犻櫎" site="form" /> + <my-button style="width: 120px;" name="鏌ョ湅璇︽儏" site="form" /> + </div> + </div> + + </el-card> + </el-col> + </el-row> + </div> + <el-pagination + :small="false" + :current-page="1" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="10" + layout="total, sizes, prev, pager, next, jumper" + :total="0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <el-dialog title="鏂板鍑哄簱" :close-on-click-modal="false" :visible.sync="adddialog" width="60%" > + <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px"> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="24"> + <el-form-item label="鍑哄簱鎵嬬画" prop="name"> + 浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢 + </el-form-item> + </el-col> + </el-row> + <div style="position: relative;"> + <div style="background-color: #F9F9F9;width: 90%;"> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-table :data="formData.tableData" height="100%" :stripe="true"> + <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column> + <el-table-column prop="time1" label="鍗曚綅" align="center"> </el-table-column> + <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column> + <el-table-column prop="time2" label="鍑哄簱鏁伴噺" align="center"> </el-table-column> + </el-table> + </div> + <div style="position: absolute;right: 0;top: 152px;"> + <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/> + <my-button name="鏂板鐗╁搧" site="form"/> + </div> + </div> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="纭畾" site="form" /> + <my-button name="鍙栨秷" site="form" @click="adddialog = false"/> + </div> + </el-dialog> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, myImport}, + data() { + return { + + adddialog: false, + formData:{ + tableData:[ + { + projectName:'555' + }, + { + projectName:'444' + } + ], + }, + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '鍑哄簱鍗曞彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鐗╁搧鍚嶇О', + placeholder: '鍙ā绯婃悳绱�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鍒涘缓浜�', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val1', + label: '鍑哄簱鏃堕棿', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val2', + label: '鑷�', + defaultValue: '' + }, + // { + // type: 'select', + // dataIndex: 'status', + // label: '鐘舵��', + // placeholder: '璇烽�夋嫨', + // defaultValue: '1', + // options: [ + // { + // label: '鍚敤', + // value: '1' + // }, + // { + // label: '绂佺敤', + // value: '0' + // } + // ] + // } + ], + proData: [ + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'666', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + } + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + } + }, + computed: { + clientHeight () { + return document.documentElement.clientHeight + }, + }, + created() { + }, + methods: { + handleSizeChange(){}, + handleCurrentChange(){}, + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + + addtable() { + this.adddialog = true + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + // this.$refs.myTable.search(pageNum) + } else { + // this.$refs.myTable.search() + } + }, + fifterForm(params) { + console.log(params,'555'); + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> +.card { + display: flex; + flex-wrap: wrap; + margin: 0px !important; + .cm-item { + width: 100%; + } + .cm-item /deep/ .el-card__body { + padding: 10px; + } +} +.card-data{ + position: relative; + margin-top: 8px; + .card-container{ + display: inline-block; + width: 70%; + .hed-one{ + color: #2298EE; + font-size: 18px; + } + .one-hed{ + margin-top: 15px; + .box{ + display: inline-block; + margin-right: 20px; + } + } + .span-two{ + color: #83919e; + font-size: 14px; + } + .card-end{ + font-size: 14px; + color: #3d3d3d; + margin-top: 15px; + display: flex; + flex-wrap: wrap; + .two-end{ + width: calc(33.33% - 20px); + margin-bottom: 15px; + } + } + + } + .card-but{ + position: absolute; + right: 20px; + top: 40%; + } + +} + +</style> diff --git a/admin-web/src/views/stock/procure/receiptDetails/edit.vue b/admin-web/src/views/stock/procure/receiptDetails/edit.vue new file mode 100644 index 0000000..37b0db9 --- /dev/null +++ b/admin-web/src/views/stock/procure/receiptDetails/edit.vue @@ -0,0 +1,111 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="缂栧彿" prop="code"> + <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鍦板潃" > + <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-switch + v-model="formData.status" + active-color="#0d997c" + inactive-color="#C0CCDA"> + </el-switch> + </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 finsystenant from '@/api/baseSetting/finsystenant' + +export default { + components: {winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + formData: { + code: '', + name: '', + status: true, + summary: '', + }, + rules: { + code: [ + {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'} + ], + name: [ + {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'} + ], + status: [ + {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'} + ] + } + } + }, + created() { + if(this.setting.info){ + this.formData = Object.assign({},JSON.parse(this.setting.info)) + } + }, + methods: { + getEditInfo(id){ + + }, + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if(this.setting.id){ + // 缂栬緫鎺ュ彛 + finsystenant.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + }else{ + params.orgId = this.setting.orgId + finsystenant.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/admin-web/src/views/stock/procure/receiptDetails/index.vue b/admin-web/src/views/stock/procure/receiptDetails/index.vue new file mode 100644 index 0000000..494f54e --- /dev/null +++ b/admin-web/src/views/stock/procure/receiptDetails/index.vue @@ -0,0 +1,280 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyTableV2 from "@/components/myTable/myTableV2"; +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import edit from './edit' +import * as finsystenant from '@/api/baseSetting/finsystenant' +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, MyTableV2, edit, myImport}, + data() { + return { + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '鍗曞彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '绫诲瀷', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + }, + { + type: 'text', + dataIndex: 'name', + label: '鐗╁搧鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鍒涘缓浜�', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '鍗曞彿', field: 'code', align: 'center'}, + {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', }, + {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', }, + {title: '鍗曚环', field: 'summary', align: 'left',}, + {title: '鍏ュ簱鏁伴噺', field: 'summary', align: 'left',}, + {title: '閲戦', field: 'summary', align: 'left',}, + {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',}, + {title: '鍒涘缓浜�', field: 'summary', align: 'left',}, + {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',}, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '150', // 鍒楀 + attr: [ + { + title: '璇︽儏', + events: (row) => { + this.showAudit(row); + }, + }, + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData() + }, + methods: { + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.getTree().then(res => { + const content = res || [] + this.treeDataList.splice(0, this.treeDataList.length) + this.treeDataList = content + if (content.length > 0) { + this.importSetting.fileSettings.data = {pid: content[0].id} + } + }) + }, + updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.status = row.status == 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + del(row) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�') + .then(function () { + finsystenant.del({id: row.id}).then((res) => { + }); + }) + .then((res) => { + this.$message.success('鍒犻櫎鎴愬姛锛�'); + this.search() + }) + .catch(() => { + }); + }, + showAdd() { + // if (!this.editSetting.orgId) { + // this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯') + // } else { + this.editSetting.id = null; + this.editSetting.info = null; + this.editSetting.title = '鏂板'; + this.editSetting.show = true; + // } + }, + showAudit(row) { + this.editSetting.id = row.id; + this.editSetting.info = JSON.stringify(row); + this.editSetting.title = '缂栬緫'; + this.editSetting.show = true; + }, + nodeClick(param) { + param = param || {} + this.p = Object.assign({}, { + id: param.id, + name: param.name + }) + if (this.p.id != undefined && this.p.id != null) { + this.filterFrom.tenantId = this.p.id + this.editSetting.orgId = this.p.id + } else { + this.filterFrom.tenantId = null + this.editSetting.orgId = null + } + this.importSetting.fileSettings.data = {pid: param.id} + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/admin-web/src/views/stock/transfer/transferApplication/index.vue b/admin-web/src/views/stock/transfer/transferApplication/index.vue new file mode 100644 index 0000000..77df32b --- /dev/null +++ b/admin-web/src/views/stock/transfer/transferApplication/index.vue @@ -0,0 +1,457 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-button name="鏂板" @click="addtable" site="form" /> + <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}"> + <el-row class="card" + :gutter="5"> + <el-col v-for="(item, index) in proData" :key="index" class="cm-item"> + <el-card class="card-data"> + <div class="card-container"> + <div class="hed-one"> <span>璋冩嫧鍗曞彿锛歿{ item.order_no }}</span><span style="margin-left: 20px;"><el-button type="warning" plain size="mini">寰呮帴鏀�</el-button></span></div> + <div class="one-hed"> + <div class="box"><span class="span-two">鎺ュ彈鏈烘瀯锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鐢宠浜猴細</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鐢宠璋冩嫧鏃堕棿锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎺ユ敹鏃堕棿锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">璋冩嫧鏃堕棿锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎺ュ彈浜猴細</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎺ュ彈鏃堕棿锛�</span>{{ item.customer_name }}</div> + </div> + <div class="card-end"> + <div v-for="(just, index) in item.data" class="two-end"> + <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div> + </div> + </div> + </div> + <div class="card-but"> + <div style="margin-top: 10px;"> + <my-button style="width: 120px;" name="鍒犻櫎" site="form" /> + <my-button style="width: 120px;" name="鏌ョ湅璇︽儏" site="form" /> + </div> + </div> + + </el-card> + </el-col> + </el-row> + </div> + <el-pagination + :small="false" + :current-page="1" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="10" + layout="total, sizes, prev, pager, next, jumper" + :total="0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <el-dialog title="鏂板鍑哄簱" :close-on-click-modal="false" :visible.sync="adddialog" width="60%" > + <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px"> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="24"> + <el-form-item label="鍑哄簱鎵嬬画" prop="name"> + 浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢 + </el-form-item> + </el-col> + </el-row> + <div style="position: relative;"> + <div style="background-color: #F9F9F9;width: 90%;"> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-table :data="formData.tableData" height="100%" :stripe="true"> + <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column> + <el-table-column prop="time1" label="鍗曚綅" align="center"> </el-table-column> + <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column> + <el-table-column prop="time2" label="鍑哄簱鏁伴噺" align="center"> </el-table-column> + </el-table> + </div> + <div style="position: absolute;right: 0;top: 152px;"> + <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/> + <my-button name="鏂板鐗╁搧" site="form"/> + </div> + </div> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="纭畾" site="form" /> + <my-button name="鍙栨秷" site="form" @click="adddialog = false"/> + </div> + </el-dialog> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, myImport}, + data() { + return { + + adddialog: false, + formData:{ + tableData:[ + { + projectName:'555' + }, + { + projectName:'444' + } + ], + }, + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '鍑哄簱鍗曞彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鐗╁搧鍚嶇О', + placeholder: '鍙ā绯婃悳绱�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鍒涘缓浜�', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val1', + label: '鍑哄簱鏃堕棿', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val2', + label: '鑷�', + defaultValue: '' + }, + // { + // type: 'select', + // dataIndex: 'status', + // label: '鐘舵��', + // placeholder: '璇烽�夋嫨', + // defaultValue: '1', + // options: [ + // { + // label: '鍚敤', + // value: '1' + // }, + // { + // label: '绂佺敤', + // value: '0' + // } + // ] + // } + ], + proData: [ + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃' + }, + ] + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + } + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + } + }, + computed: { + clientHeight () { + return document.documentElement.clientHeight + }, + }, + created() { + }, + methods: { + handleSizeChange(){}, + handleCurrentChange(){}, + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + + addtable() { + this.adddialog = true + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + // this.$refs.myTable.search(pageNum) + } else { + // this.$refs.myTable.search() + } + }, + fifterForm(params) { + console.log(params,'555'); + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> +.card { + display: flex; + flex-wrap: wrap; + margin: 0px !important; + .cm-item { + width: 100%; + } + .cm-item /deep/ .el-card__body { + padding: 10px; + } +} +.card-data{ + position: relative; + margin-top: 8px; + .card-container{ + display: inline-block; + width: 70%; + .hed-one{ + color: #2298EE; + font-size: 18px; + } + .one-hed{ + margin-top: 5px; + .box{ + display: inline-block; + margin-right: 20px; + margin-top: 10px; + } + } + .span-two{ + color: #83919e; + font-size: 14px; + } + .card-end{ + font-size: 14px; + color: #3d3d3d; + margin-top: 15px; + display: flex; + flex-wrap: wrap; + .two-end{ + width: calc(33.33% - 20px); + margin-bottom: 15px; + } + } + + } + .card-but{ + position: absolute; + right: 20px; + top: 40%; + } + +} + +</style> diff --git a/admin-web/src/views/stock/transfer/transferdetails/edit.vue b/admin-web/src/views/stock/transfer/transferdetails/edit.vue new file mode 100644 index 0000000..37b0db9 --- /dev/null +++ b/admin-web/src/views/stock/transfer/transferdetails/edit.vue @@ -0,0 +1,111 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="缂栧彿" prop="code"> + <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鍦板潃" > + <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-switch + v-model="formData.status" + active-color="#0d997c" + inactive-color="#C0CCDA"> + </el-switch> + </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 finsystenant from '@/api/baseSetting/finsystenant' + +export default { + components: {winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + formData: { + code: '', + name: '', + status: true, + summary: '', + }, + rules: { + code: [ + {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'} + ], + name: [ + {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'} + ], + status: [ + {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'} + ] + } + } + }, + created() { + if(this.setting.info){ + this.formData = Object.assign({},JSON.parse(this.setting.info)) + } + }, + methods: { + getEditInfo(id){ + + }, + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if(this.setting.id){ + // 缂栬緫鎺ュ彛 + finsystenant.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + }else{ + params.orgId = this.setting.orgId + finsystenant.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/admin-web/src/views/stock/transfer/transferdetails/index.vue b/admin-web/src/views/stock/transfer/transferdetails/index.vue new file mode 100644 index 0000000..a0db784 --- /dev/null +++ b/admin-web/src/views/stock/transfer/transferdetails/index.vue @@ -0,0 +1,282 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyTableV2 from "@/components/myTable/myTableV2"; +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import edit from './edit' +import * as finsystenant from '@/api/baseSetting/finsystenant' +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, MyTableV2, edit, myImport}, + data() { + return { + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '鍗曞彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '绫诲瀷', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + }, + { + type: 'text', + dataIndex: 'name', + label: '鐗╁搧鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鍒涘缓浜�', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '鍗曞彿', field: 'code', align: 'center'}, + {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', }, + {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', }, + {title: '鏁伴噺', field: 'summary', align: 'left',}, + {title: '鎺ュ彈鏈烘瀯', field: 'summary', align: 'left',}, + {title: '鍒涘缓浜�', field: 'summary', align: 'left',}, + {title: '鐢宠鏃堕棿', field: 'summary', align: 'left',}, + {title: '鎺ユ敹鏃堕棿', field: 'summary', align: 'left',}, + {title: '璋冩嫧鏈烘瀯', field: 'summary', align: 'left',}, + {title: '璋冩嫧浜�', field: 'summary', align: 'left',}, + {title: '璋冩嫧鏃堕棿', field: 'summary', align: 'left',}, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '150', // 鍒楀 + attr: [ + { + title: '璇︽儏', + events: (row) => { + this.showAudit(row); + }, + }, + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData() + }, + methods: { + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.getTree().then(res => { + const content = res || [] + this.treeDataList.splice(0, this.treeDataList.length) + this.treeDataList = content + if (content.length > 0) { + this.importSetting.fileSettings.data = {pid: content[0].id} + } + }) + }, + updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.status = row.status == 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + del(row) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�') + .then(function () { + finsystenant.del({id: row.id}).then((res) => { + }); + }) + .then((res) => { + this.$message.success('鍒犻櫎鎴愬姛锛�'); + this.search() + }) + .catch(() => { + }); + }, + showAdd() { + // if (!this.editSetting.orgId) { + // this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯') + // } else { + this.editSetting.id = null; + this.editSetting.info = null; + this.editSetting.title = '鏂板'; + this.editSetting.show = true; + // } + }, + showAudit(row) { + this.editSetting.id = row.id; + this.editSetting.info = JSON.stringify(row); + this.editSetting.title = '缂栬緫'; + this.editSetting.show = true; + }, + nodeClick(param) { + param = param || {} + this.p = Object.assign({}, { + id: param.id, + name: param.name + }) + if (this.p.id != undefined && this.p.id != null) { + this.filterFrom.tenantId = this.p.id + this.editSetting.orgId = this.p.id + } else { + this.filterFrom.tenantId = null + this.editSetting.orgId = null + } + this.importSetting.fileSettings.data = {pid: param.id} + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/admin-web/src/views/stock/transfer/transferissue/index.vue b/admin-web/src/views/stock/transfer/transferissue/index.vue new file mode 100644 index 0000000..77df32b --- /dev/null +++ b/admin-web/src/views/stock/transfer/transferissue/index.vue @@ -0,0 +1,457 @@ +<template> + <div class="app-container"> + <el-container> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-button name="鏂板" @click="addtable" site="form" /> + <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}"> + <el-row class="card" + :gutter="5"> + <el-col v-for="(item, index) in proData" :key="index" class="cm-item"> + <el-card class="card-data"> + <div class="card-container"> + <div class="hed-one"> <span>璋冩嫧鍗曞彿锛歿{ item.order_no }}</span><span style="margin-left: 20px;"><el-button type="warning" plain size="mini">寰呮帴鏀�</el-button></span></div> + <div class="one-hed"> + <div class="box"><span class="span-two">鎺ュ彈鏈烘瀯锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鐢宠浜猴細</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鐢宠璋冩嫧鏃堕棿锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎺ユ敹鏃堕棿锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">璋冩嫧鏃堕棿锛�</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎺ュ彈浜猴細</span>{{ item.customer_name }}</div> + <div class="box"><span class="span-two">鎺ュ彈鏃堕棿锛�</span>{{ item.customer_name }}</div> + </div> + <div class="card-end"> + <div v-for="(just, index) in item.data" class="two-end"> + <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div> + </div> + </div> + </div> + <div class="card-but"> + <div style="margin-top: 10px;"> + <my-button style="width: 120px;" name="鍒犻櫎" site="form" /> + <my-button style="width: 120px;" name="鏌ョ湅璇︽儏" site="form" /> + </div> + </div> + + </el-card> + </el-col> + </el-row> + </div> + <el-pagination + :small="false" + :current-page="1" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="10" + layout="total, sizes, prev, pager, next, jumper" + :total="0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <el-dialog title="鏂板鍑哄簱" :close-on-click-modal="false" :visible.sync="adddialog" width="60%" > + <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px"> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="24"> + <el-form-item label="鍑哄簱鎵嬬画" prop="name"> + 浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢 + </el-form-item> + </el-col> + </el-row> + <div style="position: relative;"> + <div style="background-color: #F9F9F9;width: 90%;"> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class=""> + <el-col :span="12"> + <el-form-item label="浠撳簱鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + </el-col> + </el-row> + <el-table :data="formData.tableData" height="100%" :stripe="true"> + <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column> + <el-table-column prop="time1" label="鍗曚綅" align="center"> </el-table-column> + <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column> + <el-table-column prop="time2" label="鍑哄簱鏁伴噺" align="center"> </el-table-column> + </el-table> + </div> + <div style="position: absolute;right: 0;top: 152px;"> + <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/> + <my-button name="鏂板鐗╁搧" site="form"/> + </div> + </div> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="纭畾" site="form" /> + <my-button name="鍙栨秷" site="form" @click="adddialog = false"/> + </div> + </el-dialog> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import myImport from '@/views/components/myImport' +import {getBaseUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, myImport}, + data() { + return { + + adddialog: false, + formData:{ + tableData:[ + { + projectName:'555' + }, + { + projectName:'444' + } + ], + }, + // 鎼滅储妗� + items: [ + { + type: 'text', + dataIndex: 'name', + label: '鍑哄簱鍗曞彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鐗╁搧鍚嶇О', + placeholder: '鍙ā绯婃悳绱�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'name', + label: '鍒涘缓浜�', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val1', + label: '鍑哄簱鏃堕棿', + defaultValue: '' + }, + { + type: 'date-picker', + dataIndex: 'val2', + label: '鑷�', + defaultValue: '' + }, + // { + // type: 'select', + // dataIndex: 'status', + // label: '鐘舵��', + // placeholder: '璇烽�夋嫨', + // defaultValue: '1', + // options: [ + // { + // label: '鍚敤', + // value: '1' + // }, + // { + // label: '绂佺敤', + // value: '0' + // } + // ] + // } + ], + proData: [ + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃' + }, + ] + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + }, + { + order_no:'55555', + customer_name:'閮戝窞甯傞偖鏀垮垎鍏徃', + data:[ + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'20浠�' + }, + { + order_no:'鐭冲嫆鑺鑹茬⒊绮�', + customer_name:'666' + }, + ] + + } + ], + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + } + }, + computed: { + clientHeight () { + return document.documentElement.clientHeight + }, + }, + created() { + }, + methods: { + handleSizeChange(){}, + handleCurrentChange(){}, + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + + addtable() { + this.adddialog = true + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + // this.$refs.myTable.search(pageNum) + } else { + // this.$refs.myTable.search() + } + }, + fifterForm(params) { + console.log(params,'555'); + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> +.card { + display: flex; + flex-wrap: wrap; + margin: 0px !important; + .cm-item { + width: 100%; + } + .cm-item /deep/ .el-card__body { + padding: 10px; + } +} +.card-data{ + position: relative; + margin-top: 8px; + .card-container{ + display: inline-block; + width: 70%; + .hed-one{ + color: #2298EE; + font-size: 18px; + } + .one-hed{ + margin-top: 5px; + .box{ + display: inline-block; + margin-right: 20px; + margin-top: 10px; + } + } + .span-two{ + color: #83919e; + font-size: 14px; + } + .card-end{ + font-size: 14px; + color: #3d3d3d; + margin-top: 15px; + display: flex; + flex-wrap: wrap; + .two-end{ + width: calc(33.33% - 20px); + margin-bottom: 15px; + } + } + + } + .card-but{ + position: absolute; + right: 20px; + top: 40%; + } + +} + +</style> diff --git a/admin-web/src/views/systemManger/org/index.vue b/admin-web/src/views/systemManger/org/index.vue index b7964cd..11d81b3 100644 --- a/admin-web/src/views/systemManger/org/index.vue +++ b/admin-web/src/views/systemManger/org/index.vue @@ -115,6 +115,7 @@ {title: '缂栧彿', field: 'code', align: 'center', width: '150px'}, {title: '鏈烘瀯鍚嶇О', field: 'name', align: 'left'}, {title: '灞傜骇', field: 'lv', align: 'center', width: '80px'}, + {title: '椤哄簭鍙�', field: 'lv', align: 'center', width: '80px'}, {title: '澶囨敞', field: 'summary', align: 'left', width: '150px'}, { field: 'belongProvince', @@ -155,12 +156,12 @@ this.showAudit(row); }, }, - { - title: '鍒犻櫎', - events: (row) => { - this.del(row); - }, - } + // { + // title: '鍒犻櫎', + // events: (row) => { + // this.del(row); + // }, + // } ], }, paging: { diff --git a/admin-web/src/views/systemManger/server/user/index.vue b/admin-web/src/views/systemManger/server/user/index.vue index e777bbb..44b94d6 100644 --- a/admin-web/src/views/systemManger/server/user/index.vue +++ b/admin-web/src/views/systemManger/server/user/index.vue @@ -107,18 +107,11 @@ }, // 鍒椾俊鎭� columns: [ - { title: '浜哄憳濮撳悕', field: 'userName', align: 'left' }, - { title: '鍛樺伐缂栧彿', field: 'userCode', align: 'left' }, - { title: '鎵嬫満鍙�', field: 'userPhone', align: 'center', width: 150 }, - { - title: '鍒涘缓鏃堕棿', - field: 'createTime', - align: 'center', - width: 200, - formatter: (row) => { - return { value: DateFormatter.LongToDateTime(row.createTime) }; - }, - }, + { title: '缂栧彿', field: 'userCode', align: 'left' }, + { title: '鐢ㄦ埛濮撳悕', field: 'userName', align: 'left' }, + { title: '鐧诲綍鍚�', field: 'userPhone', align: 'center' }, + { title: '鎵�灞炴満鏋�', field: 'userPhone', align: 'center', width: 150 }, + { title: '閮ㄩ棬', field: 'userPhone', align: 'center' }, { field: 'status', title: '鐘舵��', @@ -154,18 +147,18 @@ width: '250', // 鍒楀 attr: [ { - title: '瑙掕壊', - events: (row) => { - this.showEditRole(row.id); - }, - }, - { title: '缂栬緫', events: (row) => { this.showAdd(row.id); }, }, { + title: '瑙掕壊', + events: (row) => { + this.showEditRole(row.id); + }, + }, + { title: '瀵嗙爜鍒濆鍖�', events: (row) => { this.updPassWord(row); diff --git a/admin-web/src/views/systemManger/server/user/items.js b/admin-web/src/views/systemManger/server/user/items.js index a59a1c7..b76f203 100644 --- a/admin-web/src/views/systemManger/server/user/items.js +++ b/admin-web/src/views/systemManger/server/user/items.js @@ -2,14 +2,14 @@ { type: 'text', dataIndex: 'userName', - label: '浜哄憳濮撳悕', + label: '鐢ㄦ埛濮撳悕', placeholder: "璇疯緭鍏�", defaultValue: '' }, { type: 'text', dataIndex: 'userPhone', - label: '鎵嬫満鍙�', + label: '缂栧彿', placeholder: "璇疯緭鍏�", defaultValue: '' }, diff --git a/admin-web/src/views/systemSetting/department/data.vue b/admin-web/src/views/systemSetting/department/data.vue new file mode 100644 index 0000000..b0836af --- /dev/null +++ b/admin-web/src/views/systemSetting/department/data.vue @@ -0,0 +1,427 @@ +<template> + <div class="divBox"> + <el-card class="box-card"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="瀛楀吀鍚嶇О" prop="dictType"> + <el-select v-model="queryParams.dictType"> + <el-option + v-for="item in typeOptions" + :key="item.dict_id" + :label="item.dict_name" + :value="item.dict_type" + /> + </el-select> + </el-form-item> + <el-form-item label="瀛楀吀鏍囩" prop="dictLabel"> + <el-input + v-model="queryParams.dictLabel" + placeholder="璇疯緭鍏ュ瓧鍏告爣绛�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-select v-model="queryParams.status" placeholder="鏁版嵁鐘舵��" clearable> + <el-option + v-for="item in constants.normalOrDisabled" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:dict:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:dict:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['system:dict:export']" + >瀵煎嚭</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-close" + size="mini" + @click="handleClose" + >鍏抽棴</el-button> + </el-col> +<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>--> + </el-row> + + <el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="瀛楀吀ID" align="center" prop="dict_code" /> + <el-table-column label="瀛楀吀鍚嶇О" align="center" prop="dict_label"> + <template slot-scope="scope"> + <span v-if="scope.row.list_class == '' || scope.row.list_class == 'default'">{{scope.row.dict_label}}</span> + <el-tag v-else :type="scope.row.list_class == 'primary' ? '' : scope.row.list_class">{{scope.row.dict_label}}</el-tag> + </template> + </el-table-column> + <el-table-column label="瀛楀吀鍊�" align="center" prop="dict_value" /> + <el-table-column label="鎺掑簭" align="center" prop="dict_sort" /> + <el-table-column label="鐘舵��" align="center" prop="status"> + <template slot-scope="scope"> +<!-- <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>--> + <span>{{ scope.row.status == 0? '姝e父':'绂佺敤' }}</span> + </template> + </el-table-column> + <el-table-column label="鐖秈d" align="center" prop="parent_id" /> + <el-table-column label="澶囨敞" align="center" prop="remark" :show-overflow-tooltip="true" /> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180"> +<!-- <template slot-scope="scope">--> +<!-- <span>{{ parseTime(scope.row.create_time) }}</span>--> +<!-- </template>--> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:dict:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:dict:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + +<!-- <pagination--> +<!-- v-show="total>0"--> +<!-- :total="total"--> +<!-- :page.sync="queryParams.pageNum"--> +<!-- :limit.sync="queryParams.pageSize"--> +<!-- @pagination="getList"--> +<!-- />--> + <el-pagination + :current-page="queryParams.pageNum" + :page-sizes="constants.page.limit" + :layout="constants.page.layout" + :total="this.total" + @size-change="getList" + @current-change="getList" + /> + </el-card> + + <!-- 娣诲姞鎴栦慨鏀瑰弬鏁伴厤缃璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" :before-close="cancel" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="瀛楀吀ID"> + <el-input v-model="form.dict_code" :disabled="false" placeholder="涓�涓敮涓�鏁板瓧"/> + </el-form-item> + <el-form-item label="瀛楀吀绫诲瀷"> + <el-input v-model="form.dict_type" :disabled="true" /> + </el-form-item> + <el-form-item label="瀛楀吀鍚嶇О" prop="dict_label"> + <el-input v-model="form.dict_label" placeholder="璇疯緭鍏ユ暟鎹爣绛�" /> + </el-form-item> + <el-form-item label="瀛楀吀鍊�" prop="dict_value"> + <el-input v-model="form.dict_value" placeholder="涓嶅~鍜屽瓧鍏窱D涓�鑷�" /> + </el-form-item> + <el-form-item label="鏍峰紡灞炴��" prop="css_class"> + <el-input v-model="form.css_class" placeholder="璇疯緭鍏ユ牱寮忓睘鎬�" /> + </el-form-item> + <el-form-item label="鏄剧ず鎺掑簭" prop="dict_sort"> + <el-input-number v-model="form.dict_sort" controls-position="right" :min="0" /> + </el-form-item> + <el-form-item label="鍥炴樉鏍峰紡" prop="list_class"> + <el-select v-model="form.list_class"> + <el-option + v-for="item in listClassOptions" + :key="item.value" + :label="item.label + '(' + item.value + ')'" + :value="item.value" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="form.status"> + <el-radio + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.value * 1" + >{{dict.label}}</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="鐖跺瓧鍏窱D" prop="dict_label"> + <el-input v-model="form.parent_id" placeholder="鐖跺瓧鍏竔d锛屽繀濉�" /> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data"; +import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type"; + +export default { + name: "Data", + // dicts: ['sys_normal_disable'], + data() { + return { + constants: this.$constants, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 瀛楀吀琛ㄦ牸鏁版嵁 + dataList: [], + // 榛樿瀛楀吀绫诲瀷 + defaultDictType: "", + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏁版嵁鏍囩鍥炴樉鏍峰紡 + listClassOptions: [ + { + value: "default", + label: "榛樿" + }, + { + value: "primary", + label: "涓昏" + }, + { + value: "success", + label: "鎴愬姛" + }, + { + value: "info", + label: "淇℃伅" + }, + { + value: "warning", + label: "璀﹀憡" + }, + { + value: "danger", + label: "鍗遍櫓" + } + ], + // 绫诲瀷鏁版嵁瀛楀吀 + typeOptions: [], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + dictName: undefined, + dictType: undefined, + status: undefined + }, + // 琛ㄥ崟鍙傛暟 + form: { + status: '1' + }, + // 琛ㄥ崟鏍¢獙 + rules: { + dict_code: [ + { required: true, message: "瀛楀吀id蹇呴』杈撳叆", trigger: "blur" } + ], + dict_label: [ + { required: true, message: "鏁版嵁鏍囩涓嶈兘涓虹┖", trigger: "blur" } + ], + parent_id: [ + { required: true, message: "鐖秈d涓嶈兘涓虹┖", trigger: "blur" } + ], + // dict_value: [ + // { required: true, message: "鏁版嵁閿�间笉鑳戒负绌�", trigger: "blur" } + // ], + dict_sort: [ + { required: true, message: "鏁版嵁椤哄簭涓嶈兘涓虹┖", trigger: "blur" } + ] + }, + editMode: false + }; + }, + created() { + const dictId = this.$route.params && this.$route.params.dictId; + this.getType(dictId); + this.getTypeList(); + }, + methods: { + /** 鏌ヨ瀛楀吀绫诲瀷璇︾粏 */ + getType(dictId) { + getType(dictId).then(response => { + // this.queryParams.dictType = response.data.dict_type; + // this.defaultDictType = response.data.dict_type; + this.queryParams.dictType = response.dict_type; + this.defaultDictType = response.dict_type; + this.getList(); + }); + }, + /** 鏌ヨ瀛楀吀绫诲瀷鍒楄〃 */ + getTypeList() { + getDictOptionselect().then(response => { + this.typeOptions = response.data; + }); + }, + /** 鏌ヨ瀛楀吀鏁版嵁鍒楄〃 */ + getList() { + this.loading = true; + listData(this.queryParams).then(response => { + this.dataList = response.datas; + this.total = response.totalRows; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + dict_code: undefined, + dict_label: undefined, + dict_value: undefined, + css_class: undefined, + list_class: 'default', + dict_sort: 0, + status: "0", + parent_id: undefined, + remark: undefined + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 杩斿洖鎸夐挳鎿嶄綔 */ + handleClose() { + const obj = { path: "/system/dict" }; + this.$tab.closeOpenPage(obj); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.queryParams.dictType = this.defaultDictType; + this.handleQuery(); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.editMode = false; + this.open = true; + this.title = "娣诲姞瀛楀吀鏁版嵁"; + // this.form.dictType = this.queryParams.dictType; + this.form.dict_type = this.queryParams.dictType; + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.dictCode) + this.single = selection.length!=1 + this.multiple = !selection.length + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + this.editMode = true; + const dictCode = row.dict_code || this.ids + getData(dictCode).then(response => { + this.form = response; + this.open = true; + this.title = "淇敼瀛楀吀鏁版嵁"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + // if (this.form.dict_code != undefined) { + if (this.editMode == true) { + updateData(this.form).then(response => { + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + console.log(this.form); + addData(this.form).then(response => { + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const dictCodes = row.dict_code || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎瀛楀吀缂栫爜涓�"' + dictCodes + '"鐨勬暟鎹」锛�').then(function() { + return delData(dictCodes); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/dict/data/export', { + ...this.queryParams + }, `data_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/admin-web/src/views/systemSetting/department/index.vue b/admin-web/src/views/systemSetting/department/index.vue new file mode 100644 index 0000000..f4e556c --- /dev/null +++ b/admin-web/src/views/systemSetting/department/index.vue @@ -0,0 +1,405 @@ +<template> + <div class="app-container"> + <!--宸︿晶鏍戝舰寮�濮�--> + <el-col :span="5"> + <el-card class="box-card" shadow="never"> + <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> + </el-card> + </el-col> + <!--宸︿晶鏍戝舰缁撴潫--> + <!--鍙充晶鍒楄〃寮�濮�--> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> +<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">--> +<!-- <el-form-item label="瀛楀吀鍚嶇О" prop="dictName">--> +<!-- <el-input--> +<!-- v-model="queryParams.dictName"--> +<!-- placeholder="璇疯緭鍏�"--> +<!-- clearable--> +<!-- style="width: 150px"--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="鐘舵��" prop="status">--> +<!-- <el-select--> +<!-- v-model="queryParams.status"--> +<!-- placeholder="璇烽�夋嫨"--> +<!-- clearable--> +<!-- style="width: 150px"--> +<!-- >--> +<!-- <el-option--> +<!-- v-for="item in constants.normalOrDisabled"--> +<!-- :key="item.value"--> +<!-- :label="item.label"--> +<!-- :value="item.value"--> +<!-- />--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- <el-form-item>--> +<!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌ヨ</el-button>--> +<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>--> +<!-- </el-form-item>--> +<!-- </el-form>--> +<!-- <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">--> +<!-- <el-table-column type="selection" width="55" align="center" />--> +<!-- <el-table-column label="瀛楀吀缂栧彿" align="center" prop="dict_id" />--> +<!-- <el-table-column label="瀛楀吀鍚嶇О" align="center" prop="dict_name" :show-overflow-tooltip="true" />--> +<!-- <el-table-column label="瀛楀吀绫诲瀷" align="center" :show-overflow-tooltip="true">--> +<!-- <template slot-scope="scope">--> +<!-- <router-link :to="'/systemSetting/dictdata/data/' + scope.row.dict_id" class="link-type">--> +<!-- <span>{{ scope.row.dict_type }}</span>--> +<!-- </router-link>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="鐘舵��" align="center" prop="status">--> +<!-- <template slot-scope="scope">--> +<!-- <span>{{ scope.row.status == 0? '姝e父':'绂佺敤' }}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="澶囨敞" align="center" prop="remark" :show-overflow-tooltip="true" />--> +<!-- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180">--> +<!-- <template slot-scope="scope">--> +<!-- <span>{{ dateTo(scope.row.create_time) }}</span>--> +<!-- </template>--> +<!-- <!– <template slot-scope="scope">–>--> +<!-- <!– <span>{{ parseTime(scope.row.create_time) }}</span>–>--> +<!-- <!– </template>–>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="180">--> +<!-- <template slot-scope="scope">--> +<!-- <el-button--> +<!-- size="mini"--> +<!-- type="text"--> +<!-- icon="el-icon-edit"--> +<!-- @click="handleUpdate(scope.row)"--> +<!-- v-hasPermi="['system:dict:edit']"--> +<!-- >淇敼</el-button>--> +<!-- <!– <el-button--> +<!-- size="mini"--> +<!-- type="text"--> +<!-- icon="el-icon-delete"--> +<!-- @click="handleDelete(scope.row)"--> +<!-- v-hasPermi="['system:dict:remove']"--> +<!-- >鍒犻櫎</el-button>–>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- </el-table>--> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 8px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="queryParams" :table="table"/> + </el-col> + </el-row> + </el-card> + </el-container> + <!-- 娣诲姞鎴栦慨鏀瑰弬鏁伴厤缃璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="瀛楀吀鍚嶇О" prop="dictName"> + <el-input v-model="form.dictName" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" /> + </el-form-item> + <el-form-item label="瀛楀吀绫诲瀷" prop="dictType"> + <el-input v-model="form.dictType" placeholder="璇疯緭鍏ュ瓧鍏哥被鍨�" /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="form.status"> + <el-radio + v-for="item in constants.normalOrDisabled" + :key="item.value" + :label="item.value" + >{{item.label}}</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import myTree from '@/components/myTree/index'; +import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type"; +import * as DateFormatter from "@/utils/DateFormatter"; +import MyTableV2 from "@/components/myTable/myTableV2"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' +import * as finsystenant from '@/api/baseSetting/finsystenant'; +export default { + name: "Dict", + components: { MyTableV2, myTree }, + data() { + return { + // 鏍戞暟鎹� + treeDataList: [], + constants: this.$constants, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 瀛楀吀琛ㄦ牸鏁版嵁 + typeList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 鏌ヨ鍙傛暟 + queryParams: { + dictName: undefined, + dictType: undefined, + status: 0 + }, + items:items, + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/system/dict/type/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '缂栧彿', field: 'dict_id', align: 'center', width: '100px'}, + {title: '閮ㄩ棬', field: 'dict_name', align: 'left'}, + {title: '椤哄簭鍙�', field: 'dict_name', align: 'left'}, + {title: '澶囨敞', field: 'remark', align: 'left', width: '200px'}, + { + title: '鐘舵��', field: 'status', align: 'center', width: '180px', + formatter: row => { + return { value: row.status=== 0? '鍚敤':'绂佺敤' } + } + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + // width: 150, + align: 'center', + show: false, // 鏄剧ず鎿嶄綔鍒� + attr: [ + // 鍒嗙被涓嬫湁姝e湪杩涜涓殑椤圭洰鏃讹紝缁欏嚭鎻愮ず涓嶅厑璁哥鐢ㄥ拰鍒犻櫎銆備笖绂佺敤涓�绾у垎绫诲墠闇�瑕佸厛绂佺敤涓嬮潰鐨勬墍鏈変簩绾э紝鏈夊惎鐢ㄧ殑浜岀骇鏃朵笉鍏佽绂佺敤涓�绾� + { + // checkPermission:'system:role:edit', + title: '淇敼', + events: row => { + this.handleUpdate(row) + } + }, + // { + // // checkPermission: 'system:role:remove', + // title: '鍒犻櫎', + // events: row => { + // this.handleDelete(row) + // } + // }, + ] + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + dictName: [ + { required: true, message: "瀛楀吀鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ], + dictType: [ + { required: true, message: "瀛楀吀绫诲瀷涓嶈兘涓虹┖", trigger: "blur" } + ] + } + }; + }, + created() { + this.initTreeData() + }, + methods: { + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.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.tenantName = this.treeDataList[0].label; + this.tenantCode = this.treeDataList[0].code; + } + }); + }, + nodeClick(param) { + console.log(param,'param'); + this.search(1) + }, + fifterForm(params) { + this.queryParams = Object.assign(this.queryParams, params) + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + dateTo(val) { + return DateFormatter.LongToDateTime(val); + }, + changeSize(e){ + this.queryParams.pageSize = e + this.getList() + }, + changePage(e){ + this.queryParams.pageNum = e + this.getList() + }, + /** 鏌ヨ瀛楀吀绫诲瀷鍒楄〃 */ + getList() { + this.loading = true; + listType(this.queryParams).then(response => { + // this.typeList = response.rows; + this.typeList = response.datas; + this.total = response.totalRows; + this.loading = false; + } + ); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + dictId: undefined, + dictName: undefined, + dictType: undefined, + status: "0", + remark: undefined + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.handleQuery(); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞瀛楀吀绫诲瀷"; + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.dictId) + this.single = selection.length!=1 + this.multiple = !selection.length + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const dictId = row.dict_id || this.ids + getType(dictId).then(response => { + this.form = response; + this.form.dictName = this.form.dict_name + this.form.dictType = this.form.dict_type + this.open = true; + this.title = "淇敼瀛楀吀绫诲瀷"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.dictId != undefined) { + updateType(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addType(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const dictIds = row.dictId || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎瀛楀吀缂栧彿涓�"' + dictIds + '"鐨勬暟鎹」锛�').then(function() { + return delType(dictIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/dict/type/export', { + ...this.queryParams + }, `type_${new Date().getTime()}.xlsx`) + }, + /** 鍒锋柊缂撳瓨鎸夐挳鎿嶄綔 */ + handleRefreshCache() { + refreshCache().then(() => { + this.$modal.msgSuccess("鍒锋柊鎴愬姛"); + this.$store.dispatch('dict/cleanDict'); + }); + } + } +}; +</script> diff --git a/admin-web/src/views/systemSetting/department/items.js b/admin-web/src/views/systemSetting/department/items.js new file mode 100644 index 0000000..cae6307 --- /dev/null +++ b/admin-web/src/views/systemSetting/department/items.js @@ -0,0 +1,33 @@ +export default [ + { + type: 'text', + dataIndex: 'dictName', + label: '閮ㄩ棬鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'dictName', + label: '缂栧彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '0', + options: [ + { + value: '0', + label: '鍚敤' + }, + { + value: '1', + label: '绂佺敤' + } + ] + } +] diff --git a/admin-web/src/views/systemSetting/dict/index.vue b/admin-web/src/views/systemSetting/dict/index.vue index 73bece6..0a98279 100644 --- a/admin-web/src/views/systemSetting/dict/index.vue +++ b/admin-web/src/views/systemSetting/dict/index.vue @@ -1,5 +1,13 @@ <template> <div class="app-container"> + <!--宸︿晶鏍戝舰寮�濮�--> + <el-col :span="5"> + <el-card class="box-card" shadow="never"> + <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> + </el-card> + </el-col> + <!--宸︿晶鏍戝舰缁撴潫--> + <!--鍙充晶鍒楄〃寮�濮�--> <el-container> <el-card class="box-card" style="width: 100%" shadow="never"> <!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">--> @@ -119,16 +127,20 @@ </template> <script> +import myTree from '@/components/myTree/index'; import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type"; import * as DateFormatter from "@/utils/DateFormatter"; import MyTableV2 from "@/components/myTable/myTableV2"; import SettingIplatform from '@/utils/settingIplatform'; import items from './items' +import * as finsystenant from '@/api/baseSetting/finsystenant'; export default { name: "Dict", - components: { MyTableV2 }, + components: { MyTableV2, myTree }, data() { return { + // 鏍戞暟鎹� + treeDataList: [], constants: this.$constants, // 閬僵灞� loading: true, @@ -246,8 +258,26 @@ }; }, created() { + this.initTreeData() }, methods: { + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.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.tenantName = this.treeDataList[0].label; + this.tenantCode = this.treeDataList[0].code; + } + }); + }, + nodeClick(param) { + console.log(param,'param'); + this.search(1) + }, fifterForm(params) { this.queryParams = Object.assign(this.queryParams, params) this.search(1) diff --git a/admin-web/src/views/systemSetting/role/index.vue b/admin-web/src/views/systemSetting/role/index.vue index e2e25f5..7795ade 100644 --- a/admin-web/src/views/systemSetting/role/index.vue +++ b/admin-web/src/views/systemSetting/role/index.vue @@ -277,7 +277,7 @@ custom: [ { name: '鏂板', - checkPermission:'system:role:edit', + // checkPermission:'system:role:edit', click: () => { this.handleAdd(null) } @@ -289,7 +289,7 @@ {title: '瑙掕壊缂栧彿', field: 'role_id', align: 'center', width: '200px'}, {title: '瑙掕壊鍚嶇О', field: 'role_name', align: 'center', width: '260px'}, {title: '鏉冮檺瀛楃', field: 'role_key', align: 'center', width: '260px'}, - {title: '鏄剧ず椤哄簭', field: 'role_sort', align: 'center', width: '100px'}, + {title: '椤哄簭鍙�', field: 'role_sort', align: 'center', width: '100px'}, { title: '鐘舵��', field: 'status', align: 'center', width: '100px', switch: row => { @@ -314,7 +314,7 @@ return result } }, - {title: '澶囨敞', field: 'remark', align: 'left', width: '250px'}, + // {title: '澶囨敞', field: 'remark', align: 'left', width: '250px'}, ], // 鎿嶄綔淇℃伅 operation: { -- Gitblit v1.9.1