From 025dafb9892a8ff8f8a855343660f837a0f231d3 Mon Sep 17 00:00:00 2001 From: haoyahui <2032914783@qq.com> Date: 星期一, 20 十一月 2023 16:31:11 +0800 Subject: [PATCH] 库存管理前端 --- admin-web/src/views/stock/inventorycount/inventorytask/index.vue | 56 + admin-web/src/views/stock/procure/purchaseOrder/detail.vue | 4 admin-web/src/utils/settingIplatform.js | 4 admin-web/src/views/stock/transfer/transferApplication/index.vue | 24 admin-web/src/views/stock/accessStock/outbound/detail.vue | 4 admin-web/src/api/baseSetting/finsystenant.js | 8 admin-web/src/views/stock/inventorycount/inventorytask/edit.vue | 77 admin-web/src/views/departmentitem/itemret/retDetails/index.vue | 115 -- admin-web/src/views/stock/index.scss | 25 admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue | 173 --- admin-web/src/views/stock/accessStock/outbound/edit.vue | 7 admin-web/public/static/config.js | 4 admin-web/src/views/stock/ledger/inventoryQuery/index.vue | 128 +- admin-web/src/views/stock/procure/purchaseOrder/index.vue | 30 admin-web/src/views/foundation/store/person.vue | 20 admin-web/src/views/departmentitem/itemret/returnNote/index.vue | 530 ++--------- admin-web/src/views/stock/transfer/transferissue/index.vue | 39 admin-web/src/components/myTable/myTableV2.vue | 2 admin-web/src/views/stock/inventorycount/inventorytask/detail.vue | 5 admin-web/src/styles/store.scss | 361 ++++---- admin-web/src/views/systemManger/server/user/edit.vue | 1 admin-web/src/views/departmentitem/itemret/returnNote/detail.vue | 120 ++ admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue | 250 ++--- admin-web/src/views/stock/procure/purchaseOrder/edit.vue | 9 admin-web/src/api/stock/ledger.js | 11 admin-web/src/views/departmentitem/itemret/returnNote/edit.vue | 436 ++++++++++ admin-web/src/views/stock/transfer/transferApplication/detail.vue | 5 admin-web/src/views/stock/accessStock/outboundDetails/index.vue | 27 28 files changed, 1,300 insertions(+), 1,175 deletions(-) diff --git a/admin-web/public/static/config.js b/admin-web/public/static/config.js index bac4b67..60dfb72 100644 --- a/admin-web/public/static/config.js +++ b/admin-web/public/static/config.js @@ -14,8 +14,8 @@ // 鎺ュ彛璇锋眰鍦板潃 // apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡 // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙� - apiBaseURL: 'http://172.16.20.10:8083/lowConsum',//寮�鍙� - // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� + // apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙� + apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, // socket杩炴帴 wsSocketUrl: VUE_APP_WS_URL, diff --git a/admin-web/src/api/baseSetting/finsystenant.js b/admin-web/src/api/baseSetting/finsystenant.js index 4215cc1..d4087b1 100644 --- a/admin-web/src/api/baseSetting/finsystenant.js +++ b/admin-web/src/api/baseSetting/finsystenant.js @@ -186,4 +186,12 @@ method: 'get', params, }); +} +// 搴撳瓨 +export function tenantUserQueryUser(params) { + return request({ + url: '/pc/fin/sys/tenant/user/query/user', + method: 'get', + params, + }); } \ No newline at end of file diff --git a/admin-web/src/api/stock/ledger.js b/admin-web/src/api/stock/ledger.js new file mode 100644 index 0000000..86e4828 --- /dev/null +++ b/admin-web/src/api/stock/ledger.js @@ -0,0 +1,11 @@ +import request from '@/utils/request'; + +// 鍗曟嵁鏂板 +export function doExport(params) { + return request({ + url: '/pc/fin/warehouse/ledger/getListExport', + responseType: 'blob', // 鎸囧畾鍝嶅簲鏁版嵁绫诲瀷涓築lob + method: 'post', + params, + }); +} diff --git a/admin-web/src/components/myTable/myTableV2.vue b/admin-web/src/components/myTable/myTableV2.vue index 5857918..6afb0f1 100644 --- a/admin-web/src/components/myTable/myTableV2.vue +++ b/admin-web/src/components/myTable/myTableV2.vue @@ -628,6 +628,8 @@ color: #303133; font-weight: 700; margin-top: 10px; + display: flex; + justify-content: flex-end; } .el-radio { margin-right: 10px; diff --git a/admin-web/src/styles/store.scss b/admin-web/src/styles/store.scss index 3227b22..bc1f7ec 100644 --- a/admin-web/src/styles/store.scss +++ b/admin-web/src/styles/store.scss @@ -1,127 +1,127 @@ .stock-container { - .ml-20 { - margin-left: 20px; - } - .card,.list-item { - display: flex; - flex-wrap: wrap; - margin: 0px !important; + .ml-20 { + margin-left: 20px; + } + .card, + .list-item { + display: flex; + flex-wrap: wrap; + margin: 0px !important; + width: 100%; + min-height: 100%; + .cm-item { width: 100%; - min-height: 100%; - .cm-item { - width: 100%; - } - .cm-item .el-card__body { - padding-bottom: 5px; - } } - .card-data { - width: 100%; - position: relative; - margin-top: 8px; - .card-container { - .card-header { - height: 48px; - display: flex; - align-items: center; - justify-content: space-between; - background: #f3f9fe; - padding: 0 32px 0 15px; - box-sizing: border-box; + .cm-item .el-card__body { + padding-bottom: 5px; + } + } + .card-data { + width: 100%; + position: relative; + margin-top: 8px; + .card-container { + .card-header { + height: 48px; + display: flex; + align-items: center; + justify-content: space-between; + background: #f3f9fe; + padding: 0 32px 0 15px; + box-sizing: border-box; + } + .card-header-left { + display: flex; + align-items: center; + color: #999999; + font-family: 'Microsoft YaHei UI'; + font-size: 18px; + font-weight: 700; + .value { + color: #3d3d3d; } - .card-header-left { - display: flex; - align-items: center; + + .states { + width: 54px; + height: 22px; + line-height: 22px; + text-align: center; + border-radius: 4px; + border: 1px solid #f9675b99; + background: rgba($color: #f9675b99, $alpha: 0.1); + font-family: 'Microsoft YaHei'; + color: #f9675b; + font-size: 13px; + font-style: normal; + font-weight: 400; + margin-left: 8px; + } + .states-success { + border: 1px solid #39ad6199; + background: rgba($color: #39ad6199, $alpha: 0.1); + color: #39ad61; + } + .states-info { + border: 1px solid #999999; + background: rgba($color: #999999, $alpha: 0.1); color: #999999; - font-family: 'Microsoft YaHei UI'; - font-size: 18px; - font-weight: 700; - .value { - color: #3d3d3d; + } + .states-warning { + border: 1px solid #e6a23c; + background: rgba($color: #e6a23c, $alpha: 0.1); + color: #e6a23c; + } + } + .one-hed { + margin-top: 15px; + padding: 0 32px 0 15px; + box-sizing: border-box; + .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; + font-family: 'Microsoft YaHei UI'; + padding: 0 16px; + box-sizing: border-box; + .item { + width: 379px; + height: 60px; + padding: 8px 12px 9px 12px; + box-sizing: border-box; + align-items: center; + gap: 8px; + flex-shrink: 0; + background: #f9f9f9; + margin-right: 15px; + margin-bottom: 15px; + &:last-child { + margin-right: 0; } - - .states { - width: 54px; + .name { height: 22px; line-height: 22px; - text-align: center; - border-radius: 4px; - border: 1px solid #f9675b99; - background: rgba($color:#f9675b99,$alpha:0.1); - font-family: 'Microsoft YaHei'; - color: #f9675b; - font-size: 13px; - font-style: normal; - font-weight: 400; - margin-left: 8px; } - .states-success { - border: 1px solid #39ad6199; - background: rgba($color:#39ad6199,$alpha:0.1); - color: #39ad61; - } - .states-info { - border: 1px solid #999999; - background: rgba($color:#999999,$alpha:0.1); - color: #999999; - } - .states-warning { - border: 1px solid #e6a23c; - background: rgba($color:#e6a23c,$alpha:0.1); - color: #e6a23c; - } - } - .one-hed { - margin-top: 15px; - padding: 0 32px 0 15px; - box-sizing: border-box; - .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; - font-family: 'Microsoft YaHei UI'; - padding: 0 16px; - box-sizing: border-box; - .item { - width: 379px; - height: 60px; - padding: 8px 12px 9px 12px; - box-sizing: border-box; - align-items: center; - gap: 8px; - flex-shrink: 0; - background: #f9f9f9; - margin-right: 15px; - margin-bottom: 15px; - &:last-child { - margin-right: 0; - } - .name { - height: 22px; - line-height: 22px; - } - .value-box { - display: flex; - .value-box-item { - margin-right: 20px; - .label { - color: #99999999; - line-height: 22px; - } - .value { - color: #ff3131; - } + .value-box { + display: flex; + .value-box-item { + margin-right: 20px; + .label { + color: #99999999; + line-height: 22px; + } + .value { + color: #ff3131; } } } @@ -129,73 +129,78 @@ } } } - .no-data{ - margin-top: 100px; - text-align: center; - color: #909399; + .el-pagination { + display: flex; + justify-content: flex-end; } - - /*缂栬緫*/ - .stock-edit{ - .main-w { - width: 88%; +} +.no-data { + margin-top: 100px; + text-align: center; + color: #909399; +} + +/*缂栬緫*/ +.stock-edit { + .main-w { + width: 88%; + } + .goods-card { + position: relative; + background: #f6f6f6; + padding: 20px; + box-sizing: border-box; + border-radius: 4px; + background-color: #f9f9f9; + margin-top: 20px; + &:nth-of-type(1) { + margin-top: 0; } - .goods-card { - position: relative; - background: #f6f6f6; - padding: 20px; - box-sizing: border-box; - border-radius: 4px; - background-color: #f9f9f9; - margin-top: 20px; - &:nth-of-type(1) { - margin-top: 0; - } - } - .btn-group { - width: 80px; - position: absolute; - right: -94px; - bottom: 0px; - .el-button { - margin-bottom: 10px; - margin-left: 0; - display: block; - &:last-child { - margin-bottom: 0; - } + } + .btn-group { + width: 80px; + position: absolute; + right: -94px; + bottom: 0px; + .el-button { + margin-bottom: 10px; + margin-left: 0; + display: block; + &:last-child { + margin-bottom: 0; } } } - - /*璇︽儏*/ - .stock-detail{ - .img-row { - display: flex; - align-content: center; +} + +/*璇︽儏*/ +.stock-detail { + .img-row { + display: flex; + align-content: center; + } + .img-box { + display: inline-block; + width: 80px; + height: 80px; + background: #f9f9f9; + margin-right: 20px; + cursor: pointer; + .img { + width: 100%; } - .img-box { - display: inline-block; - width: 80px; - height: 80px; - background: #f9f9f9; - margin-right: 20px; - cursor: pointer; - .img { - width: 100%; - } + } + + .goods-card { + position: relative; + background: #f6f6f6; + padding: 20px; + box-sizing: border-box; + border-radius: 4px; + background-color: #f9f9f9; + margin-top: 20px; + &:nth-of-type(1) { + margin-top: 0; } - - .goods-card { - position: relative; - background: #f6f6f6; - padding: 20px; - box-sizing: border-box; - border-radius: 4px; - background-color: #f9f9f9; - margin-top: 20px; - &:nth-of-type(1) { - margin-top: 0; - } - } - } \ No newline at end of file + } +} diff --git a/admin-web/src/utils/settingIplatform.js b/admin-web/src/utils/settingIplatform.js index 265c004..366a244 100644 --- a/admin-web/src/utils/settingIplatform.js +++ b/admin-web/src/utils/settingIplatform.js @@ -14,8 +14,8 @@ // apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡 // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙� // apiBaseURL: 'http://172.16.60.175:8083/lowConsum',//寮�鍙� - apiBaseURL: 'http://172.16.20.10:8083/lowConsum',//寮�鍙� - // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� + // apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙� + apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙� // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, // socket杩炴帴 wsSocketUrl: VUE_APP_WS_URL, diff --git a/admin-web/src/views/departmentitem/itemret/retDetails/index.vue b/admin-web/src/views/departmentitem/itemret/retDetails/index.vue index 2936cd9..6269d01 100644 --- a/admin-web/src/views/departmentitem/itemret/retDetails/index.vue +++ b/admin-web/src/views/departmentitem/itemret/retDetails/index.vue @@ -13,16 +13,9 @@ <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> @@ -30,14 +23,12 @@ 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}, + components: {MyButton, MyTableV2}, data() { return { // 鎼滅储妗� @@ -90,24 +81,6 @@ 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: '', @@ -133,13 +106,12 @@ }, // 鍒椾俊鎭� 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',}, {title: '鍒涘缓浜�', field: 'summary', align: 'left',}, {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',}, ], @@ -170,94 +142,13 @@ } }, 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) { diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/detail.vue b/admin-web/src/views/departmentitem/itemret/returnNote/detail.vue new file mode 100644 index 0000000..f8f428d --- /dev/null +++ b/admin-web/src/views/departmentitem/itemret/returnNote/detail.vue @@ -0,0 +1,120 @@ +<template> + <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'"> + <el-row :gutter="20"> + <el-col :span="8"> + <span>閫�鍥炲崟鍙凤細</span> + <span>{{ detail.businessFormCode }}</span> + </el-col> + <el-col :span="8"> + <span>閫�鍥炰粨搴擄細</span> + <span>{{ detail.warehouseName }}</span> + </el-col> + <el-col :span="8"> + <span>鎵�灞炴満鏋勶細</span> + <span>{{ detail.agencyName }}</span> + </el-col> + </el-row> + <el-row :gutter="20" style="margin-top: 20px"> + <el-col :span="8"> + <span>鍒涘缓浜猴細</span> + <span>{{ detail.operatorName }}</span> + </el-col> + <el-col :span="8"> + <span>閫�鍥炴椂闂达細</span> + <span>{{ detail.dealTime | formatTime }}</span> + </el-col> + </el-row> + <el-row v-if="detail.procureDoc" :gutter="20" style="margin-top: 20px"> + <el-col class="img-row" :span="24"> + <span>閫�鍥炴墜缁細</span> + <div class="img-box"></div> + </el-col> + </el-row> + <div class="goods-card" v-for="(goodsItem, goodsIndex) in detail.fromOutputGoods" :key="goodsIndex"> + <el-row :gutter="20"> + <el-col :span="8"> + <span>鐗╁搧鍒嗙被锛�</span> + <span>{{ goodsItem.categoryName }}</span> + </el-col> + <el-col :span="8"> + <span>鐗╁搧鍚嶇О锛�</span> + <span>{{ goodsItem.goodsName }}</span> + </el-col> + </el-row> + <el-table :data="goodsItem.models" :stripe="true" style="margin-top: 20px"> + <el-table-column prop="baseGoodsModelsName" label="瑙勬牸鍨嬪彿" align="center"> + <template slot-scope="scope"> + {{ scope.row.baseGoodsModelsName }} + </template> + </el-table-column> + <el-table-column label="鍗曚綅" align="center"> + <template slot-scope="scope"> + {{ scope.row.unit }} + </template> + </el-table-column> + <el-table-column prop="counts" label="閫�鍥炴暟閲�" align="center"> + <template slot-scope="scope"> + {{ scope.row.counts }} + </template> + </el-table-column> + <el-table-column prop="counts" label="閲戦" align="center"> + <template slot-scope="scope"> + {{ scope.row.price * scope.row.counts | formatPrice}} + </template> + </el-table-column> + </el-table> + </div> + </win-md> +</template> +<script> +import { outputDetail } from '@/api/stock/accessStock'; +import winMd from '@/components/win/win-md'; +import * as DateFormatter from '@/utils/DateFormatter'; + +export default { + components: { winMd }, + + props: { + setting: { + type: Object, + default: () => {}, + }, + }, + data() { + return { + detail: { + categoryName: '', + businessFormCode: '', + goodsName: '', + agencyId: '', + agencyName: '', + states: '', + createName: '', + fromOutputGoods: [], + }, + }; + }, + filters: { + formatTime(time) { + if (!time) return; + return DateFormatter.LongToDateTime(time); + }, + formatPrice(price) { + return price / 100 + } + }, + created() { + outputDetail({ id: this.setting.id }).then((res) => { + this.detail = res; + }); + }, + methods: { + close() { + this.$emit('close') + }, + }, +}; +</script> +<style lang="scss" scoped> +@import url(../../../../styles/store.scss); +</style> diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue b/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue new file mode 100644 index 0000000..a4aee1f --- /dev/null +++ b/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue @@ -0,0 +1,436 @@ +<template> + <win-md class="stock-edit" title="鐗╁搧閫�鍥�" @close="close" :width="'800px'"> + <el-form class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px"> + <div class="main-w"> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="12"> + <el-form-item label="閮ㄩ棬" prop="warehouseId"> + <el-input v-model="formData.departmentName" disabled></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閫�鍥炰汉" prop="createName"> + <el-input v-model="formData.createName" disabled></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閫�鍥炴椂闂�" prop="dealTime"> + <el-date-picker + v-model="formData.dealTime" + type="datetime" + value="yyyy-MM-dd HH:mm:ss" + value-format="yyyyMMddHHmmss" + placeholder="璇烽�夋嫨鏃ユ湡" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24" class="headerHeight"> + <el-col :span="24"> + <el-form-item label="閫�鍥炴墜缁�" prop="procureDoc"> + <upload ref="uploadRef" :settings="uploadSettings" @on-change="uploadChange"></upload> + </el-form-item> + </el-col> + </el-row> + <div class="goods-card" v-for="(goodsItem, goodsIndex) in formData.goods" :key="goodsIndex"> + <el-row :gutter="24"> + <el-col :span="12"> + <el-form-item + label="鐗╁搧鍒嗙被" + :prop="`goods[${goodsIndex}].baseCategoryIds`" + :rules="{ + required: true, + message: '璇烽�夋嫨', + trigger: 'change', + }" + > + <el-cascader + v-model="goodsItem.baseCategoryIds" + :options="categoryOptions" + :props="{ value: 'id' }" + @change="categoryChange($event, goodsIndex)" + style="width: 100%" + ></el-cascader> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item + label="鐗╁搧鍚嶇О" + :prop="`goods[${goodsIndex}].baseGoodsTemplateId`" + :rules="rules.baseGoodsTemplateId" + > + <el-select + v-model="goodsItem.baseGoodsTemplateId" + placeholder="璇峰厛鎷╃墿鍝佸垎绫�" + filterable + :disabled="!goodsItem.baseCategoryId" + style="width: 100%" + @change="goodsTemplateChange($event, goodsIndex)" + > + <el-option + v-for="item in goodsItem.goodsOptions" + :key="item.id" + :label="item.goodsName" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="24"> + <el-col :span="12"> + <el-form-item label="閫夋嫨鍒嗗彂鍗�" :prop="`goods[${goodsIndex}].modelsIds`"> + <el-input v-if="!goodsItem.baseGoodsTemplateId" placeholder="璇峰厛鎷╃墿鍝佸悕绉�" readonly suffix-icon="el-icon-arrow-down" class="cursor-p"></el-input> + <div v-else @click="fenfaSetting.show=true"> + <el-input placeholder="璇烽�夋嫨" readonly suffix-icon="el-icon-arrow-down" class="cursor-p"></el-input> + </div> + </el-form-item> + </el-col> + </el-row> + <el-table :data="goodsItem.models" :stripe="true"> + <el-table-column prop="baseGoodsModelsId" label="瑙勬牸鍨嬪彿" align="center"> + <template slot-scope="scope"> + {{ getGoodsModelsName(scope.row.baseGoodsModelsId) }} + </template> + </el-table-column> + <el-table-column label="鍗曚綅" align="center"> + <template slot-scope="scope"> + {{ scope.row.unit }} + </template> + </el-table-column> + <el-table-column prop="price" label="鐜版湁搴撳瓨" align="center"> + <template slot-scope="scope"> + {{ scope.row.worehouseCount }} + </template> + </el-table-column> + <el-table-column prop="counts" label="閫�鍥炴暟閲�" align="center"> + <template slot-scope="scope"> + <el-form-item + label-width="0" + style="margin-bottom: 0" + :prop="`goods[${goodsIndex}].models[${scope.$index}].counts`" + :rules="rules.counts" + > + <el-input + type="number" + v-model="scope.row.counts" + @change="countsChange($event, goodsIndex, scope.$index)" + ></el-input> + </el-form-item> + </template> + </el-table-column> + </el-table> + <div class="btn-group"> + <el-button + v-if="formData.goods.length > 1" + name="绉婚櫎" + type="danger" + plain + size="mini" + @click="removeGoods(goodsIndex)" + >绉婚櫎</el-button + > + <el-button + v-if="formData.goods.length - 1 == goodsIndex" + name="鏂板鐗╁搧" + type="primary" + plain + size="mini" + @click="addGoods" + >鏂板鐗╁搧</el-button + > + </div> + </div> + </div> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close" /> + <my-button name="淇濆瓨" site="form" @click="handleSubmit" /> + </div> + <div v-if="fenfaSetting.show"> + <win-sm title="閫夋嫨鍒嗗彂鍗�" @close="fenfaSetting.show=false" :width="'800px'"> + <el-table :data="fenfaData"> + <el-table-column type="selection" width="55"> </el-table-column> + <el-table-column label="鍒嗗彂鍗曞彿" prop="businessFormCode"></el-table-column> + <el-table-column label="鐗╁搧鍚嶇О" prop="modelName"></el-table-column> + <el-table-column label="鍒嗗彂鏁伴噺" prop="fenfaCount"></el-table-column> + <el-table-column label="鍓╀綑鏁伴噺" prop="count"></el-table-column> + <el-table-column label="鍒嗗彂鏃堕棿" prop="time"></el-table-column> + </el-table> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="fenfaSetting.show=false" /> + <my-button name="纭畾" site="form" @click="handleConfirm" /> + </div> + </win-sm> + </div> + </win-md> +</template> +<script> +import { + goodsTemplate, + goodsModel, + selectTenantWarehouse, + warehouseSelectNumber, +} from '@/api/baseSetting/finsystenant'; +import { outputAdd } from '@/api/stock/accessStock'; +import { getTree } from '@/api/foudation/classification'; +import MyButton from '@/components/myButton/myButton'; +import winMd from '@/components/win/win-md'; +import winSm from '@/components/win/win-sm'; +import upload from '@/components/upload/index'; +import { getUploadUrl } from '@/utils/base'; +import { mapGetters } from 'vuex'; + +export default { + components: { MyButton, winMd, winSm, upload }, + props: { + setting: { + type: Object, + default: () => {}, + }, + }, + data() { + // 鑷畾涔夋牎楠� + // 鐗╁搧閲嶅鏍¢獙 + var checkGoodsTemplateId = (rule, value, callback) => { + if (!value) { + return callback(new Error('璇烽�夋嫨')); + } + let temp = this.formData.goods.filter((v) => v.baseGoodsTemplateId == value); + if (!temp || temp.length != 1) { + return callback(new Error('宸查�夎繃姝ょ墿鍝�')); + } + callback(); + }; + return { + loading: false, + warehouseOptions: [], // 閫�鍥炰粨搴撳垪琛� + categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃 + modelList: [], //鍨嬪彿鍒楄〃 + fenfaSetting: { + show: false, + id: '', + }, + fenfaData:[], + formData: { + warehouseId: '', // 閫�鍥炰粨搴搃d + dealTime: '', // 閫�鍥炴椂闂� + procureDoc: '', + goods: [], + }, + goodsItem: { + baseCategoryIds: '', // 鍒嗙被缂栧彿鏁扮粍 + baseCategoryId: '', // 鍒嗙被缂栧彿 + baseGoodsTemplateId: '', // 鐗╁搧妯$増缂栧彿 + goodsTemplateName: '', // 鐗╁搧妯$増鍚嶇О + goodsOptions: [], // 鐗╁搧鍒楄〃select + modelsOptions: [], //瑙勬牸鍨嬪彿select + models: [], // 鐗╁搧鍚嶇О + modelsIds: [], //瑙勬牸鍨嬪彿 + }, + modelsItem: { + baseGoodsModelsId: '', // 瑙勬牸鍨嬪彿缂栧彿 + worehouseCount: 0, + counts: null, // 鎿嶄綔鏁伴噺 + unit: null, //鍗曚綅 + }, + rules: { + warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], + dealTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], + buyType: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], + + baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], + baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }], + modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], + counts: [{ required: true, message: '璇疯緭鍏�', trigger: 'change' }], + }, + + uploadSettings: { + title: '涓婁紶', + max: 20, // 鏈�澶уぇ灏忥紝鍗曚綅M + num: 10, // 鏀寔涓婁紶鍥剧墖涓暟 + accept: '.jpg,.png', // 闄愬埗鏍煎紡 + tip: '', // 鎻愮ず 榛樿锛歚鍙兘涓婁紶${this.defaultSettings.num}涓�${this.defaultSettings.accept}鏂囦欢锛屼笖涓嶈秴杩�${this.defaultSettings.max}kb` + uploadUrl: getUploadUrl(), // 涓婁紶璺緞 + multiple: true, // 鏄惁鏀寔鎵归噺涓婁紶 + disabled: false, // 鏄惁绂佺敤 + type: 'picture', // text/picture + }, + }; + }, + computed: { + ...mapGetters(['userInfo']), + }, + created() { + this.init(); + }, + methods: { + async init() { + this.getWarehouseList(); + this.getgoodsTemplate(); + // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃 + const treeRes = await getTree(); + this.categoryOptions = this.removeEmptyChildren(treeRes); + this.formData.departmentName = this.userInfo.sysDeptName; + this.formData.createName = this.userInfo.userName; + }, + + // 鑾峰彇閫�鍥炰粨搴撳垪琛� + getWarehouseList() { + selectTenantWarehouse({ agencyId: this.userInfo.tenantId }) + .then((res) => { + this.warehouseOptions = res; + if (res.length) { + this.formData.goods.push(JSON.parse(JSON.stringify(this.goodsItem))); + } + if (this.warehouseOptions.length && !this.formData.warehouseId) { + // 榛樿閫変腑绗竴涓粨搴� + this.formData.warehouseId = this.warehouseOptions[0].id; + } + }) + .catch((err) => { + console.log('err', err); + }); + }, + + removeEmptyChildren(arr) { + arr.forEach((item) => { + if (!item.children || !item.children.length) { + delete item.children; + } else { + this.removeEmptyChildren(item.children); + } + }); + return arr; + }, + + // 鑾峰彇鐗╁搧鍚嶇О鍒楄〃 + getgoodsTemplate(id, index) { + goodsTemplate({ categoryId: id || '' }).then((res) => { + if (index || index == 0) { + this.$set(this.formData.goods[index], 'goodsOptions', res); + } else { + this.goodsTemplatelAll = res; + } + }); + }, + + // 鏍规嵁鐗╁搧鍚嶇Оid鑾峰彇鍚嶅瓧 + getGoodsTemplateName(id) { + let item = this.goodsTemplatelAll.find((v) => v.id == id); + if (item) { + return item.goodsName; + } + return; + }, + + // 鏍规嵁瑙勬牸鍨嬪彿id鑾峰彇鍚嶅瓧 + getGoodsModelsName(id) { + let item = this.goodsModelAll.find((v) => v.id == id); + if (item) { + return item.modelName; + } + return; + }, + + // 鐗╁搧鍒嗙被閫夋嫨 + categoryChange(e, index) { + this.formData.goods[index].goodsOptions = []; + this.formData.goods[index].baseGoodsTemplateId = ''; + this.formData.goods[index].goodsTemplateName = ''; + this.formData.goods[index].modelsOptions = []; + this.formData.goods[index].modelsIds = []; + this.formData.goods[index].models = []; + + this.formData.goods[index].baseCategoryId = e[e.length - 1]; + // 鏍规嵁閫変腑鍒嗙被璇锋眰鐗╁搧鍚嶇О鍒楄〃 + this.getgoodsTemplate(e[e.length - 1], index); + }, + + // 鐗╁搧鍚嶇О鍒楄〃閫夋嫨 + goodsTemplateChange(e, index) { + this.formData.goods[index].modelsOptions = []; + this.formData.goods[index].modelsIds = []; + this.formData.goods[index].models = []; + + this.formData.goods[index].goodsTemplateName = this.getGoodsTemplateName(e); + }, + + // 涓婁紶 + uploadChange() { + let arr = this.$refs.uploadRef.fileList; + this.formData.procureDoc = JSON.stringify(arr); + }, + + // 鐐瑰嚮鏂板鐗╁搧 + addGoods() { + this.formData.goods.push(JSON.parse(JSON.stringify(this.goodsItem))); + }, + + // 鐐瑰嚮绉婚櫎 + removeGoods(index) { + this.formData.goods.splice(index, 1); + }, + + // 閫�鍥炴暟閲忔牎楠� + countsChange(e, goodsIndex, index) { + const curItem = this.formData.goods[goodsIndex].models[index]; + const worehouseCount = curItem.worehouseCount; + if (e == 0) { + this.$message.warning('鏁伴涓嶈兘涓�0'); + curItem.counts = null; + } + if (e > worehouseCount) { + this.$message.warning('鏁伴瓒呰繃鐜版湁搴撳瓨'); + curItem.counts = worehouseCount > 0 ? worehouseCount : null; + } + }, + + handleConfirm(){ + + }, + + // 鎻愪氦 + handleSubmit() { + this.$refs['ruleForm'].validate((valid) => { + if (valid) { + console.log('this.formData', this.formData); + outputAdd(this.formData) + .then((res) => { + this.$message.success('淇濆瓨鎴愬姛锛�'); + this.close(); + this.$emit('search'); + }) + .catch((err) => { + console.log('edit err', err); + this.$message.error('淇濆瓨澶辫触'); + }); + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��'); + } + }); + }, + + close() { + this.formData = { + warehouseId: '', // 閫�鍥炰粨搴搃d + dealTime: '', // 閫�鍥炴椂闂� + goods: [], + }; + this.$emit('close'); + }, + }, +}; +</script> +<style scoped lang="scss"> +@import url(../../../../styles/store.scss); +.cursor-p { + ::v-deep { + .el-input__inner { + cursor: pointer; + } + } +} +</style> diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/index.vue b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue index ea1d5b0..9c9e512 100644 --- a/admin-web/src/views/departmentitem/itemret/returnNote/index.vue +++ b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue @@ -1,449 +1,157 @@ <template> - <div class="app-container"> + <div class="app-container stock-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"/> + <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> + <!--鍒楄〃--> + <div class="table-tool-bar" style="margin-bottom: 15px;"> + <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" /> </div> - </el-dialog> - </el-card> - </el-container> + <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> + <el-row v-if="list.length" class="card" :gutter="5"> + <el-col v-for="(item, index) in list" :key="index" class="cm-item"> + <el-card class="card-data"> + <div class="card-container"> + <div class="card-header"> + <div class="card-header-left"> + <span>閫�鍥炲崟鍙凤細</span> + <span class="value">{{ item.businessFormCode }}</span> + </div> + <div class="card-header-right"> + <el-button site="form" type="success" size="mini" @click="handleExport(item)" + >瀵煎嚭閫�鍥炲崟</el-button + > + <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)" + >鏌ョ湅璇︽儏</el-button + > + </div> + </div> + <div class="one-hed"> + <div class="box"><span class="span-two">閮ㄩ棬锛�</span>{{ item.agencyName }}</div> + <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.operatorName }}</div> + <div class="box"> + <span class="span-two">閫�鍥炴椂闂达細</span>{{ item.dealTime | formatTime }} + </div> + </div> + <div class="card-end"> + <div v-for="(just, index) in item.formOutputTemplateInfoList" :key="index" class="item"> + <div class="name">{{ just.goodsName }}</div> + <div class="value-box"> + <div class="value-box-item"> + <span class="label">鏁伴噺锛�</span> + <span class="value">{{ just.count }}</span> + <span class="unit">{{ just.unit }}</span> + </div> + </div> + </div> + </div> + </div> + </el-card> + </el-col> + </el-row> + <div class="no-data" v-else>鏆傛棤鏁版嵁</div> + </div> + <el-pagination + :small="false" + :current-page="pageNum" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </el-col> + </el-row> + </el-card> </el-container> - <my-import - :import-setting="importSetting" - :dialog-show="importSetting.dialogShow" - :dialog-title="importSetting.dialogTitle" - /> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" ref="editRef" @close="editSetting.show=false" @search="refreshData"></edit> + <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show=false" ref="detailRef"></detail> </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'; +import { outputList } from '@/api/stock/accessStock'; +import MyButton from '@/components/myButton/myButton'; +import myImport from '@/views/components/myImport'; +import edit from './edit'; +import detail from './detail'; +import listPage from '../../../mixins/listPage' export default { - name: "index", - components: {MyButton, myImport}, + name: 'index', + mixins: [listPage], + components: { MyButton, myImport, edit, detail }, data() { return { - - adddialog: false, - formData:{ - tableData:[ - { - projectName:'555' - }, - { - projectName:'444' - } - ], - }, + list: [], // 鎼滅储妗� items: [ { type: 'text', - dataIndex: 'name', - label: '鍑哄簱鍗曞彿', + dataIndex: 'businessFormCode', + label: '閫�鍥炲崟鍙�', placeholder: '璇疯緭鍏�', - defaultValue: '' + defaultValue: '', }, { type: 'text', - dataIndex: 'name', + dataIndex: 'goodsName', label: '鐗╁搧鍚嶇О', placeholder: '鍙ā绯婃悳绱�', - defaultValue: '' - }, - { - type: 'text', - dataIndex: 'name', - label: '鍒涘缓浜�', - placeholder: '璇疯緭鍏�', - defaultValue: '' + defaultValue: '', }, { type: 'date-picker', - dataIndex: 'val1', - label: '鍑哄簱鏃堕棿', - defaultValue: '' + dataIndex: 'startTime', + label: '閫�鍥炴椂闂�', + defaultValue: '', }, { type: 'date-picker', - dataIndex: 'val2', + dataIndex: 'endTime', label: '鑷�', - defaultValue: '' + 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() - } + fetchData() { + this.loading = true; + outputList({ + pageNum: this.pageNum, + pageSize: this.pageSize, + ...this.filterFrom, + }).then((res) => { + this.list = res.datas; + this.total = res.totalRows; + this.loading = false; + }); }, fifterForm(params) { - console.log(params,'555'); - this.filterFrom = Object.assign(this.filterFrom, params) - this.search(1) - } - } -} + this.filterFrom = Object.assign(this.filterFrom, params); + if (this.filterFrom.startTime) { + this.filterFrom.startTime = this.filterFrom.startTime.replace(/\-/g, ''); + } + if (this.filterFrom.endTime) { + this.filterFrom.endTime = this.filterFrom.endTime.replace(/\-/g, ''); + } + if (this.filterFrom.agencyId&&this.filterFrom.agencyId.length) { + this.filterFrom.agencyId = this.filterFrom.agencyId[this.filterFrom.agencyId.length - 1]; + } + 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 scoped lang="scss"> +@import url(../../../../styles/store.scss); </style> diff --git a/admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue b/admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue index 2936cd9..cdc889c 100644 --- a/admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue +++ b/admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue @@ -13,16 +13,9 @@ <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> @@ -30,41 +23,32 @@ 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}, + components: {MyButton, MyTableV2,}, data() { return { // 鎼滅储妗� items: [ { - type: 'text', - dataIndex: 'name', - label: '鍗曞彿', - placeholder: '璇疯緭鍏�', - defaultValue: '' + type: 'cascader', + dataIndex: 'agencyId', + label: '鏈烘瀯', + placeholder: '璇烽�夋嫨', + optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null }, + defaultValue: '', + options: [], }, { type: 'select', - dataIndex: 'status', - label: '绫诲瀷', + dataIndex: 'name', + label: '閮ㄩ棬', placeholder: '璇烽�夋嫨', - defaultValue: '1', - options: [ - { - label: '鍚敤', - value: '1' - }, - { - label: '绂佺敤', - value: '0' - } - ] + defaultValue: '', + options: [], }, { type: 'text', @@ -74,11 +58,20 @@ defaultValue: '' }, { - type: 'text', + type: 'select', dataIndex: 'name', - label: '鍒涘缓浜�', - placeholder: '璇疯緭鍏�', - defaultValue: '' + label: '鍒嗙被', + placeholder: '璇烽�夋嫨', + defaultValue: '', + options: [], + }, + { + type: 'select', + dataIndex: 'name', + label: '绫诲埆', + placeholder: '璇烽�夋嫨', + defaultValue: '', + options: [], }, ], // 鏍戞暟鎹� @@ -89,24 +82,6 @@ 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: '', @@ -133,15 +108,14 @@ }, // 鍒椾俊鎭� 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',}, + {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',}, ], // 鎿嶄綔淇℃伅 operation: { @@ -170,94 +144,13 @@ } }, 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) { diff --git a/admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue b/admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue index 2936cd9..532bb3f 100644 --- a/admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue +++ b/admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue @@ -10,44 +10,60 @@ <el-row style="margin-top: 15px"> <el-col> <!--鍒楄〃--> - <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" /> </el-col> </el-row> - <!--娣诲姞/缂栬緫寮圭獥--> - <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 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'; +import * as finsystenant from '@/api/baseSetting/finsystenant'; +import { getBaseUrl } from '@/utils/base'; export default { - name: "index", - components: {MyButton, MyTableV2, edit, myImport}, + name: 'index', + components: { MyButton, MyTableV2 }, data() { return { // 鎼滅储妗� items: [ { + type: 'cascader', + dataIndex: 'agencyId', + label: '鏈烘瀯', + placeholder: '璇烽�夋嫨', + optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null }, + defaultValue: '', + options: [], + }, + { + type: 'select', + dataIndex: 'name', + label: '閮ㄩ棬', + placeholder: '璇疯緭鍏�', + defaultValue: '', + options: [], + }, + { type: 'text', dataIndex: 'name', - label: '鍗曞彿', + label: '鐗╁搧鍚嶇О', placeholder: '璇疯緭鍏�', - defaultValue: '' + defaultValue: '', + }, + { + type: 'select', + dataIndex: 'name', + label: '瑙勬牸鍨嬪彿', + placeholder: '璇疯緭鍏�', + defaultValue: '', + options: [], }, { type: 'select', @@ -58,27 +74,39 @@ options: [ { label: '鍚敤', - value: '1' + value: '1', }, { label: '绂佺敤', - value: '0' - } - ] + value: '0', + }, + ], }, { type: 'text', dataIndex: 'name', - label: '鐗╁搧鍚嶇О', + label: '鍗曞彿', placeholder: '璇疯緭鍏�', - defaultValue: '' + defaultValue: '', }, { type: 'text', dataIndex: 'name', - label: '鍒涘缓浜�', + label: '鎿嶄綔浜�', placeholder: '璇疯緭鍏�', - defaultValue: '' + defaultValue: '', + }, + { + type: 'date-picker', + dataIndex: 'dealTimeStart', + label: '鏃堕棿', + defaultValue: '', + }, + { + type: 'date-picker', + dataIndex: 'dealTimeEnd', + label: '鑷�', + defaultValue: '', }, ], // 鏍戞暟鎹� @@ -88,25 +116,7 @@ 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 + status: 1, }, editSetting: { title: '', @@ -121,27 +131,37 @@ url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 // 宸ュ叿鏉� tools: { - columnsCtrl: {// 鍒楁帶鍒舵寜閽� - show: false + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, }, - generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 - show: false + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, }, // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [ - ] + 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',}, + { 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' }, + { + title: '鎿嶄綔鏃堕棿', + field: 'summary', + align: 'left', + width: 160, + formatter: (row) => { + return { value: DateFormatter.LongToDateTime(row.procureTime) }; + }, + }, ], // 鎿嶄綔淇℃伅 operation: { @@ -163,118 +183,34 @@ small: false, pageNum: 1, pageSize: 10, - total: 0 - } - } + total: 0, + }, + }, }, - } + }; }, - created() { - // 鑾峰彇鏈烘瀯鏍� - this.initTreeData() - }, + 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() - } - }, - // 宸︿晶鏍戝垵濮嬪寲 - 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) + this.$refs.myTable.search(pageNum); } else { - this.$refs.myTable.search() + this.$refs.myTable.search(); } }, fifterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params) - this.search(1) - } - } -} + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(1); + }, + }, +}; </script> -<style scoped> - -</style> +<style scoped></style> diff --git a/admin-web/src/views/foundation/store/person.vue b/admin-web/src/views/foundation/store/person.vue index 1a4e5dc..9c153c4 100644 --- a/admin-web/src/views/foundation/store/person.vue +++ b/admin-web/src/views/foundation/store/person.vue @@ -1,5 +1,5 @@ <template> - <win-md :title="setting.title" @close="close" :width="'800px'"> + <win-md :title="setting.title" @close="close" :width="'800px'" :loading="loading"> <div class="section-container"> <div class="section-left"> <div class="header-row"><span class="title">閫夋嫨浜哄憳锛�</span></div> @@ -52,6 +52,8 @@ }, data() { return { + loading:true, + loadingText:'鍔犺浇涓�', selectdSections: [], treeData: [], formData: {}, @@ -64,15 +66,10 @@ }, computed: { checkedKeys() { - console.log( - 1111, - this.selectdSections.map((v) => v.id), - ); return this.selectdSections.map((v) => v.id); }, }, created() { - console.log(this.setting); if (this.setting.info) { this.formData = Object.assign({}, JSON.parse(this.setting.info)); } @@ -84,6 +81,7 @@ return item; }); this.key = Math.random(); + this.loading = false }); }, methods: { @@ -145,12 +143,16 @@ managerName: item.name, }); }); - debugger; - warehouseManagerAdd(params).then((res) => { + setTimeout(()=>{ this.$message.success('淇濆瓨鎴愬姛锛�'); this.close(); this.$emit('search'); - }); + },6000) + // warehouseManagerAdd(params).then((res) => { + // this.$message.success('淇濆瓨鎴愬姛锛�'); + // this.close(); + // this.$emit('search'); + // }); }, }, }; diff --git a/admin-web/src/views/stock/accessStock/outbound/detail.vue b/admin-web/src/views/stock/accessStock/outbound/detail.vue index 9ad74bf..0cd965a 100644 --- a/admin-web/src/views/stock/accessStock/outbound/detail.vue +++ b/admin-web/src/views/stock/accessStock/outbound/detail.vue @@ -1,5 +1,5 @@ <template> - <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'"> + <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'" :loading="loading"> <el-row :gutter="20"> <el-col :span="8"> <span>鍑哄簱鍗曞彿锛�</span> @@ -82,6 +82,7 @@ }, data() { return { + loading:true, detail: { categoryName: '', businessFormCode: '', @@ -106,6 +107,7 @@ created() { outputDetail({ id: this.setting.id }).then((res) => { this.detail = res; + this.loading = false }); }, methods: { diff --git a/admin-web/src/views/stock/accessStock/outbound/edit.vue b/admin-web/src/views/stock/accessStock/outbound/edit.vue index 1521f03..2146305 100644 --- a/admin-web/src/views/stock/accessStock/outbound/edit.vue +++ b/admin-web/src/views/stock/accessStock/outbound/edit.vue @@ -169,7 +169,7 @@ </el-form> <div slot="footer" align="center" class="dialog-footer"> <my-button name="鍙栨秷" site="form" @click="close" /> - <my-button name="淇濆瓨" site="form" @click="handleSubmit" /> + <el-button name="淇濆瓨" type="primary" size="medium" :loading="btnloading" @click="handleSubmit">淇濆瓨</el-button> </div> </win-md> </template> @@ -211,6 +211,7 @@ }; return { loading: false, + btnloading: false, warehouseOptions: [], // 鍑哄簱浠撳簱鍒楄〃 categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃 modelList: [], //鍨嬪彿鍒楄〃 @@ -432,19 +433,23 @@ handleSubmit() { this.$refs['ruleForm'].validate((valid) => { if (valid) { + this.btnloading = true; console.log('this.formData', this.formData); outputAdd(this.formData) .then((res) => { this.$message.success('淇濆瓨鎴愬姛锛�'); + this.btnloading = false; this.close(); this.$emit('search'); }) .catch((err) => { console.log('edit err', err); + this.btnloading = false; this.$message.error('淇濆瓨澶辫触'); }); } else { this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��'); + this.btnloading = false; } }); }, diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue index e94ddb1..58e8656 100644 --- a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue +++ b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue @@ -51,13 +51,16 @@ label: '绫诲瀷', placeholder: '璇烽�夋嫨', defaultValue: '', - options: [{ - label:'閲囪喘鍏ュ簱', - value:1 - },{ - label:'閫�杩樺叆搴�', - value:2 - }], + options: [ + { + label: '閲囪喘鍏ュ簱', + value: 1, + }, + { + label: '閫�杩樺叆搴�', + value: 2, + }, + ], }, { type: 'select', @@ -152,7 +155,15 @@ { title: '閲戦', field: 'totalPrice', align: 'left' }, { title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left' }, { title: '鍒涘缓浜�', field: 'createdName', align: 'left' }, - { title: '鎿嶄綔鏃堕棿', field: 'dealTime', align: 'left' }, + { + title: '鎿嶄綔鏃堕棿', + field: 'dealTime', + align: 'center', + width: 160, + formatter: (row) => { + return { value: DateFormatter.LongToDateTime(row.createTime) }; + }, + }, ], // 鎿嶄綔淇℃伅 operation: { diff --git a/admin-web/src/views/stock/index.scss b/admin-web/src/views/stock/index.scss index 1d33fb1..bc1f7ec 100644 --- a/admin-web/src/views/stock/index.scss +++ b/admin-web/src/views/stock/index.scss @@ -2,7 +2,8 @@ .ml-20 { margin-left: 20px; } - .card,.list-item { + .card, + .list-item { display: flex; flex-wrap: wrap; margin: 0px !important; @@ -47,7 +48,7 @@ text-align: center; border-radius: 4px; border: 1px solid #f9675b99; - background: rgba($color:#f9675b99,$alpha:0.1); + background: rgba($color: #f9675b99, $alpha: 0.1); font-family: 'Microsoft YaHei'; color: #f9675b; font-size: 13px; @@ -57,17 +58,17 @@ } .states-success { border: 1px solid #39ad6199; - background: rgba($color:#39ad6199,$alpha:0.1); + background: rgba($color: #39ad6199, $alpha: 0.1); color: #39ad61; } .states-info { border: 1px solid #999999; - background: rgba($color:#999999,$alpha:0.1); + background: rgba($color: #999999, $alpha: 0.1); color: #999999; } .states-warning { border: 1px solid #e6a23c; - background: rgba($color:#e6a23c,$alpha:0.1); + background: rgba($color: #e6a23c, $alpha: 0.1); color: #e6a23c; } } @@ -128,15 +129,19 @@ } } } + .el-pagination { + display: flex; + justify-content: flex-end; + } } -.no-data{ +.no-data { margin-top: 100px; text-align: center; color: #909399; } /*缂栬緫*/ -.stock-edit{ +.stock-edit { .main-w { width: 88%; } @@ -169,7 +174,7 @@ } /*璇︽儏*/ -.stock-detail{ +.stock-detail { .img-row { display: flex; align-content: center; @@ -185,7 +190,7 @@ width: 100%; } } - + .goods-card { position: relative; background: #f6f6f6; @@ -198,4 +203,4 @@ margin-top: 0; } } -} \ No newline at end of file +} diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue b/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue index 1f26174..4c66b66 100644 --- a/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue +++ b/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue @@ -8,11 +8,6 @@ <el-table v-loading="loading" :data="formData.tableData" height="100%" :stripe="true" class="the-table"> <el-table-column prop="goodsTemplateName" label="鐗╁搧鍚嶇О"> </el-table-column> <el-table-column prop="baseGoodsModelsId" label="鍨嬪彿" align="center"> </el-table-column> - <el-table-column prop="classification" label="璐疆鏃ユ湡"> </el-table-column> - <el-table-column prop="unit" label="浣跨敤閮ㄩ棬" align="center"> </el-table-column> - <el-table-column prop="kc" label="浣跨敤浜�" align="center"> </el-table-column> - <el-table-column prop="price" label="鍗曚环" align="center"> </el-table-column> - <el-table-column prop="inventoryResult" label="閲戦" align="center"> </el-table-column> <el-table-column prop="inventoryCounts" label="搴旂洏鏁伴噺" align="center"></el-table-column> <el-table-column prop="inventoryCounts" label="瀹炵洏鏁伴噺" align="center"></el-table-column> <el-table-column prop="inventoryCounts" label="鐘舵��" align="center"></el-table-column> diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/edit.vue b/admin-web/src/views/stock/inventorycount/inventorytask/edit.vue index 2ce7f4d..4d9bc93 100644 --- a/admin-web/src/views/stock/inventorycount/inventorytask/edit.vue +++ b/admin-web/src/views/stock/inventorycount/inventorytask/edit.vue @@ -15,21 +15,21 @@ <el-option v-for="item in warehouseOptions" :key="item.id" :label="item.warehouseName" :value="item.id" /> </el-select> </el-form-item> - <el-form-item label="鐩樼偣浜�" prop="operatorId"> - <el-select v-model="formData.operatorId" placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in operatorOptions" :key="item.id" :label="item.warehouseName" :value="item.id" /> + <el-form-item label="鐩樼偣浜�" prop="operatorUserId"> + <el-select v-model="formData.operatorUserId" placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option v-for="item in operatorOptions" :key="item.id" :label="item.managerName" :value="item.managerId" /> </el-select> </el-form-item> - <el-form-item label="鐩戠洏浜�" prop="operatorId2"> - <el-select v-model="formData.operatorId2" placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in operatorOptions" :key="item.id" :label="item.warehouseName" :value="item.id" /> + <el-form-item label="鐩戠洏浜�" prop="monitorUserId"> + <el-select v-model="formData.monitorUserId" placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option v-for="item in operatorOptions2" :key="item.id" :label="item.userName" :value="item.id" /> </el-select> </el-form-item> - <el-form-item label="澶囨敞" prop="beiz1"> + <el-form-item label="澶囨敞" prop="remark"> <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" - v-model="formData.beiz1" + v-model="formData.remark" resize="none" maxlength="100" show-word-limit @@ -44,11 +44,12 @@ </template> <script> -import { selectTenantWarehouse } from '@/api/baseSetting/finsystenant'; +import { selectTenantWarehouse, tenantUserQueryUser } from '@/api/baseSetting/finsystenant'; import { inventoryAdd, inventoryEdit } from '@/api/stock/inventory'; +import { warehouseManagerList } from '@/api/foudation/store'; import winSm from '@/components/win/win-sm'; import myButton from '@/components/myButton/myButton'; -import {formatDate} from '@/utils/DateFormatter' +import { formatDate } from '@/utils/DateFormatter'; import { mapGetters } from 'vuex'; export default { @@ -64,35 +65,47 @@ checkAll: false, checkedList: [], warehouseOptions: [], // 浠撳簱鍒楄〃 - operatorOptions:[], + operatorOptions: [], + operatorOptions2: [], formData: {}, rules: { businessFormName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }], warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], - operatorId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], - operatorId2: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], + operatorUserId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], + monitorUserId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], }, }; }, - computed:{ - ...mapGetters(['userInfo']) + computed: { + ...mapGetters(['userInfo']), }, created() { if (this.setting.info) { - this.formData = Object.assign({}, JSON.parse(this.setting.info)); - }else { - this.formData.businessFormName = formatDate(new Date(),'yyyy骞碝M鏈堜唤鐩樼偣') + // this.formData = Object.assign({}, JSON.parse(this.setting.info)); + } else { + this.formData.businessFormName = formatDate(new Date(), 'yyyy骞碝M鏈堜唤鐩樼偣'); } this.handleSelectTenantWarehouse(); - let temp = - this.formData.operatorId = '1109327915216504' - this.formData.operatorId2 = '10990356630810' + this.getPdr(); + this.getJpr(); }, methods: { // 鑾峰彇浠撳簱鍒楄〃 handleSelectTenantWarehouse() { - selectTenantWarehouse({agencyId:this.userInfo.tenantId}).then((res) => { + selectTenantWarehouse({ agencyId: this.userInfo.tenantId }).then((res) => { this.warehouseOptions = res; + }); + }, + // 鑾峰彇鐩樼偣浜� + getPdr() { + warehouseManagerList({ tenantId: this.userInfo.tenantId }).then((res) => { + this.operatorOptions = res; + }); + }, + // 鑾峰彇鐩戠洏浜� + getJpr() { + tenantUserQueryUser({ tenantId: this.userInfo.tenantId }).then((res) => { + this.operatorOptions2 = res; }); }, getEditInfo(id) {}, @@ -106,23 +119,15 @@ if (this.setting.id) { // 缂栬緫鎺ュ彛 inventoryEdit(params).then((res) => { - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�'); - this.close(); - this.$emit('search'); - } else { - this.$message.error('淇濆瓨澶辫触'); - } + this.$message.success('淇濆瓨鎴愬姛锛�'); + this.close(); + this.$emit('search'); }); } else { inventoryAdd(params).then((res) => { - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�'); - this.close(); - this.$emit('search'); - } else { - this.$message.error('淇濆瓨澶辫触'); - } + this.$message.success('淇濆瓨鎴愬姛锛�'); + this.close(); + this.$emit('search'); }); } } else { diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/index.vue b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue index a8ce8af..411bdbd 100644 --- a/admin-web/src/views/stock/inventorycount/inventorytask/index.vue +++ b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue @@ -42,7 +42,8 @@ import myImport from '@/views/components/myImport'; import { getBaseUrl } from '@/utils/base'; import { selectTenantWarehouse } from '@/api/baseSetting/finsystenant'; -import {inventoryListApi} from '@/api/stock/inventory' +import { inventoryListApi } from '@/api/stock/inventory'; +import * as DateFormatter from '@/utils/DateFormatter'; export default { name: 'index', @@ -157,9 +158,36 @@ { title: '鐩樼偣浠撳簱', field: 'warehouseName', align: 'center' }, { title: '鐩樼偣浜�', field: 'operatorName', align: 'center' }, { title: '鐩戠洏浜�', field: 'operatorName2', align: 'left' }, - { title: '鐩樼偣鏃堕棿', field: 'inventoryDate', align: 'left' }, - { title: '鍒涘缓鏃堕棿', field: 'createTime', align: 'left' }, - { title: '鐘舵��', field: 'states', align: 'left' }, + { + title: '鐩樼偣鏃堕棿', + field: 'inventoryDate', + align: 'center', + width: 160, + formatter: (row) => { + return { value: row.inventoryDate ? DateFormatter.LongToDateTime(row.inventoryDate) : '-' }; + }, + }, + { + title: '鍒涘缓鏃堕棿', + field: 'createTime', + align: 'center', + width: 160, + formatter: (row) => { + return { value: DateFormatter.LongToDateTime(row.createTime) }; + }, + }, + { + title: '鐘舵��', + field: 'states', + align: 'left', + type: 'primary', + formatter: (row) => { + return { + value: row.states == 0 ? '鏈紑濮�' : row.states == 1 ? '杩涜涓�' : '宸茬洏鐐�', + type: row.states == 0 ? 'danger' : row.states == 1 ? 'success' : 'primary', + }; + }, + }, ], // 鎿嶄綔淇℃伅 operation: { @@ -195,17 +223,17 @@ }; }, created() { - selectTenantWarehouse().then(res=>{ - this.items.forEach(v=>{ - if(v.label=='鐩樼偣浠撳簱') { - v.options = res.map(item=>{ - item.label=item.warehouseName - item.vlaue=item.id - return item - }) + selectTenantWarehouse().then((res) => { + this.items.forEach((v) => { + if (v.label == '鐩樼偣浠撳簱') { + v.options = res.map((item) => { + item.label = item.warehouseName; + item.vlaue = item.id; + return item; + }); } - }) - }) + }); + }); }, methods: { //瀵煎叆 diff --git a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue index 4f67bc0..617ee74 100644 --- a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue +++ b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue @@ -16,11 +16,7 @@ </el-card> </el-container> </el-container> - <my-import - :import-setting="importSetting" - :dialog-show="importSetting.dialogShow" - :dialog-title="importSetting.dialogTitle" - /> + </div> </template> @@ -29,14 +25,14 @@ import MyButton from '@/components/myButton/myButton'; import SettingIplatform from '@/utils/settingIplatform'; import * as finsystenant from '@/api/baseSetting/finsystenant'; -import myImport from '@/views/components/myImport'; import { getBaseUrl } from '@/utils/base'; -import { selectTenantWarehouse, getCategorySelectTree } from '@/api/baseSetting/finsystenant'; +import { selectTenantWarehouse, getCategorySelectTree, treeList } from '@/api/baseSetting/finsystenant'; import { getDicts } from '@/api/system/dict/data'; +import { doExport } from '@/api/stock/ledger'; export default { name: 'index', - components: { MyButton, MyTableV2, myImport }, + components: { MyButton, MyTableV2 }, data() { return { // 鎼滅储妗� @@ -60,15 +56,14 @@ }, { type: 'text', - dataIndex: 'name', + dataIndex: 'goodsTemplateName', label: '鐗╁搧鍚嶇О', placeholder: '璇疯緭鍏�', defaultValue: '', }, { type: 'select', - dataIndex: 'modelsIds', - multiple: true, + dataIndex: 'categoryId', label: '鍒嗙被', placeholder: '璇烽�夋嫨', defaultValue: '', @@ -76,7 +71,7 @@ }, { type: 'select', - dataIndex: 'warehouseId', + dataIndex: 'costType', label: '绫诲埆', placeholder: '璇烽�夋嫨', defaultValue: '', @@ -92,35 +87,11 @@ 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', // 璇锋眰鍦板潃 + url: SettingIplatform.apiBaseURL + '/pc/fin/warehouse/ledger/getList', // 璇锋眰鍦板潃 // 宸ュ叿鏉� tools: { columnsCtrl: { @@ -132,18 +103,26 @@ show: false, }, // 鑷畾涔夊伐鍏锋潯鎸夐挳 - custom: [], + custom: [ + { + name: '瀵煎嚭', + icon: 'el-icon-download', + click: () => { + this.handleExport(); + }, + }, + ], }, // 鍒椾俊鎭� 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: 'agencyName', align: 'center' }, + { title: '浠撳簱', field: 'warehouseName', align: 'center' }, + { title: '鍒嗙被', field: 'categoryName', align: 'center' }, + { title: '鎵�灞炵被鍒�', field: 'costType', align: 'center' }, + { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'left' }, + { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'left' }, + { title: '鍗曚綅', field: 'unit', align: 'left' }, + { title: '褰撳墠搴撳瓨', field: 'kucun', align: 'left' }, ], paging: { show: true, // 鏄剧ず鍒嗛〉 @@ -168,35 +147,79 @@ if (v.label == '浠撳簱') { v.options = res.map((item) => { item.label = item.warehouseName; - item.vlaue = item.id; + item.value = item.id; return item; }); } }); + console.log('this.items', this.items); }); getDicts('GOODS_PRICE').then((res) => { + // 浠峰�肩被鍨�1A 2B 3C this.items.forEach((v) => { if (v.label == '绫诲埆') { v.options = res.map((v) => { v.label = v.dict_label; - v.value = v.dict_value; + if (v.dict_value == 'A') { + v.value = 1; + } else if (v.dict_value == 'B') { + v.value = 2; + } else { + v.value = 3; + } return v; }); } }); }); - getCategorySelectTree().then((res) => { + treeList().then((res) => { this.items.forEach((v) => { if (v.label == '鍒嗙被') { v.options = res.map((item) => { - item.label = item.label; - item.vlaue = item.id; + item.label = item.categoryName; + item.value = item.id; return item; }); } }); }); }, + + // 瀵煎嚭 + handleExport() { + let loading = this.$loading({ + lock: true, + text: '瀵煎嚭涓紝璇风◢鍊�...', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)', + }); + // 鍒ゆ柇鎬绘潯鏁版槸鍚﹀ぇ浜庢渶澶ф敮鎸佹潯鏁� + doExport({ ...this.filterFrom }) + .then((res) => { + const blob = new Blob([res], { type: 'application/vnd.ms-excel' }); + const fileName = `搴撳瓨鏌ヨ.xls`; + if ('download' in document.createElement('a')) { + // 闈濱E涓嬭浇 + const elink = document.createElement('a'); + elink.download = fileName; + elink.style.display = 'none'; + elink.href = URL.createObjectURL(blob); + document.body.appendChild(elink); + elink.click(); + URL.revokeObjectURL(elink.href); + document.body.removeChild(elink); + } else { + // IE10+涓嬭浇 + navigator.msSaveBlob(blob, fileName); + } + this.$message.success('瀵煎嚭鎴愬姛锛�'); + loading.close(); + }) + .catch(() => { + loading.close(); + }); + }, + // 鏌ヨtable鍒楄〃 search(pageNum) { if (pageNum != undefined) { @@ -207,6 +230,9 @@ }, fifterForm(params) { this.filterFrom = Object.assign(this.filterFrom, params); + if (params.agencyId && params.agencyId.length) { + this.filterFrom.agencyId = params.agencyId[params.agencyId.length - 1]; + } this.search(1); }, }, diff --git a/admin-web/src/views/stock/procure/purchaseOrder/detail.vue b/admin-web/src/views/stock/procure/purchaseOrder/detail.vue index 4dc2ce5..480d5fc 100644 --- a/admin-web/src/views/stock/procure/purchaseOrder/detail.vue +++ b/admin-web/src/views/stock/procure/purchaseOrder/detail.vue @@ -1,5 +1,5 @@ <template> - <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'"> + <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'" :loading="loading"> <el-row :gutter="20"> <el-col :span="8"> <span>鍏ュ簱鍗曞彿锛�</span> @@ -119,6 +119,7 @@ }, data() { return { + loading:true, fileList: [], detail: { baseCategoryName: '', @@ -146,6 +147,7 @@ }, created() { procureDetail({ id: this.setting.id }).then((res) => { + this.loading = false this.detail = res; this.fileList = this.detail.procureDoc ? JSON.parse(this.detail.procureDoc) : []; this.$nextTick(() => { diff --git a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue index 7d8cc0c..6b4a2a1 100644 --- a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue +++ b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue @@ -1,5 +1,5 @@ <template> - <win-md class="stock-edit" :title="`${setting.title}閲囪喘鍏ュ簱`" @close="close" :width="'800px'"> + <win-md class="stock-edit" :title="`${setting.title}閲囪喘鍏ュ簱`" @close="close" :width="'800px'" :loading="loading"> <el-form class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px"> <div class="main-w"> <el-row :gutter="24" class="headerHeight"> @@ -256,7 +256,7 @@ callback(); }; return { - loading: false, + loading: true, buyTypeOptions: [ { label: '闆嗛噰', @@ -361,6 +361,7 @@ return item; }); } + this.loading = false; }, // 鑾峰彇鍏ュ簱浠撳簱鍒楄〃 @@ -502,8 +503,8 @@ handleSubmit() { this.$refs['ruleForm'].validate((valid) => { if (valid) { + this.loading = true; console.log('formData', this.formData); - debugger; if (!this.setting.id) { procureAdd(this.formData) .then((res) => { @@ -513,6 +514,7 @@ }) .catch((err) => { console.log('create err', err); + this.loading = false; this.$message.error('淇濆瓨澶辫触'); }); } else { @@ -524,6 +526,7 @@ }) .catch((err) => { console.log('edit err', err); + this.loading = false; this.$message.error('淇濆瓨澶辫触'); }); } diff --git a/admin-web/src/views/stock/procure/purchaseOrder/index.vue b/admin-web/src/views/stock/procure/purchaseOrder/index.vue index 621f136..33b64a6 100644 --- a/admin-web/src/views/stock/procure/purchaseOrder/index.vue +++ b/admin-web/src/views/stock/procure/purchaseOrder/index.vue @@ -120,7 +120,7 @@ import edit from './edit'; import detail from './detail'; import { getBaseUrl } from '@/utils/base'; -import listPage from '../../../mixins/listPage' +import listPage from '../../../mixins/listPage'; export default { name: 'index', @@ -249,17 +249,29 @@ }, // 鍏ュ簱 handleIncome(row) { - this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 鍏ュ簱鍚�?`, '閲囪喘鍏ュ簱').then(() => { - procureIncome({ id: row.id }) - .then((res) => { - this.$message.success('鍏ュ簱鎴愬姛锛�'); - this.search(); - }) - .catch(() => {}); + this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 鍏ュ簱鍚�?`, '閲囪喘鍏ュ簱', { + beforeClose: (action, instance, done) => { + if (action == 'confirm') { + instance.confirmButtonLoading = true; + instance.confirmButtonText = '鎵ц涓�...'; + procureIncome({ id: row.id }) + .then((res) => { + this.$message.success('鍏ュ簱鎴愬姛锛�'); + done(); + instance.confirmButtonLoading = false; + this.search(); + }) + .catch(() => { + done(); + }); + } else { + done(); + } + }, }); }, del(row) { - this.$modal.confirm('鏄惁纭鍒犻櫎鍏ュ簱鍗曞彿涓�"' + row.businessFormCode + '"鐨勬暟鎹悧锛�').then( () => { + this.$modal.confirm('鏄惁纭鍒犻櫎鍏ュ簱鍗曞彿涓�"' + row.businessFormCode + '"鐨勬暟鎹悧锛�').then(() => { procureDel({ id: row.id }) .then((res) => { this.$message.success('鍒犻櫎鎴愬姛锛�'); diff --git a/admin-web/src/views/stock/transfer/transferApplication/detail.vue b/admin-web/src/views/stock/transfer/transferApplication/detail.vue index 6249a6d..db84e75 100644 --- a/admin-web/src/views/stock/transfer/transferApplication/detail.vue +++ b/admin-web/src/views/stock/transfer/transferApplication/detail.vue @@ -1,5 +1,5 @@ <template> - <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'"> + <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'" :loading="loading"> <div v-loading="loading"> <el-row :gutter="20"> <el-col :span="8"> @@ -91,7 +91,7 @@ }, data() { return { - loading: false, + loading: true, detail: {}, fileList:[] }; @@ -103,7 +103,6 @@ }, }, created() { - this.loading = true; transferDetail({ id: this.setting.id }).then((res) => { this.detail = res; this.fileList = this.detail.procureDoc ? JSON.parse(this.detail.procureDoc) : []; diff --git a/admin-web/src/views/stock/transfer/transferApplication/index.vue b/admin-web/src/views/stock/transfer/transferApplication/index.vue index 497b784..6720ce6 100644 --- a/admin-web/src/views/stock/transfer/transferApplication/index.vue +++ b/admin-web/src/views/stock/transfer/transferApplication/index.vue @@ -220,11 +220,25 @@ // 鍏ュ簱 handleIncome(row) { - this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 鎺ユ敹鍏ュ簱鍚�?`, '鎺ユ敹鍏ュ簱').then(() => { - transfeIncome({ id: row.id }).then((res) => { - this.$message.success('鎺ユ敹鍏ュ簱鎴愬姛锛�'); - this.search(1); - }); + this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 鎺ユ敹鍏ュ簱鍚�?`, '鎺ユ敹鍏ュ簱', { + beforeClose: (action, instance, done) => { + if (action == 'confirm') { + instance.confirmButtonLoading = true; + instance.confirmButtonText = '鎵ц涓�...'; + transfeIncome({ id: row.id }) + .then((res) => { + this.$message.success('鎺ユ敹鍏ュ簱鎴愬姛锛�'); + done(); + instance.confirmButtonLoading = false; + this.search(1); + }) + .catch(() => { + done(); + }); + } else { + done(); + } + }, }); }, diff --git a/admin-web/src/views/stock/transfer/transferissue/index.vue b/admin-web/src/views/stock/transfer/transferissue/index.vue index f3f2404..f938a91 100644 --- a/admin-web/src/views/stock/transfer/transferissue/index.vue +++ b/admin-web/src/views/stock/transfer/transferissue/index.vue @@ -24,11 +24,7 @@ <div v-if="item.states == 4" class="states states-info">宸叉挙閿�</div> </div> <div class="card-header-right"> - <el-button - v-if="item.states == 1" - site="form" - type="success" - size="mini" + <el-button v-if="item.states == 1" site="form" type="success" size="mini" >瀵煎嚭璋冩嫧鍑哄簱鍗�</el-button > <el-button @@ -39,11 +35,7 @@ @click="handleOutput(item)" >鍑哄簱</el-button > - <el-button - v-if="item.states == 2" - site="form" - type="primary" - size="mini" + <el-button v-if="item.states == 2" site="form" type="primary" size="mini" >瀵煎嚭璋冩嫧鍏ュ簱鍗�</el-button > <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)" @@ -110,7 +102,7 @@ </template> <script> -import { transferList,transferOutput } from '@/api/stock/transfer'; +import { transferList, transferOutput } from '@/api/stock/transfer'; import MyButton from '@/components/myButton/myButton'; import myImport from '@/views/components/myImport'; import detail from './detail'; @@ -214,12 +206,25 @@ }); }, handleOutput(row) { - this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 璋冩嫧鍑哄簱鍚�?`, '璋冩嫧鍑哄簱').then(() => { - transferOutput({ id: row.id }) - .then((res) => { - this.$message.success('璋冩嫧鍑哄簱鎴愬姛锛�'); - this.search(1); - }) + this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 璋冩嫧鍑哄簱鍚�?`, '璋冩嫧鍑哄簱', { + beforeClose: (action, instance, done) => { + if (action == 'confirm') { + instance.confirmButtonLoading = true; + instance.confirmButtonText = '鎵ц涓�...'; + transferOutput({ id: row.id }) + .then((res) => { + this.$message.success('璋冩嫧鍑哄簱鎴愬姛锛�'); + done(); + instance.confirmButtonLoading = false; + this.search(1); + }) + .catch(() => { + done(); + }); + } else { + done(); + } + }, }); }, fifterForm(params) { diff --git a/admin-web/src/views/systemManger/server/user/edit.vue b/admin-web/src/views/systemManger/server/user/edit.vue index 14efd94..a68d1b5 100644 --- a/admin-web/src/views/systemManger/server/user/edit.vue +++ b/admin-web/src/views/systemManger/server/user/edit.vue @@ -87,6 +87,7 @@ }, data() { return { + deptmentOptions:[], checkAll: false, checkedList: [], roleList: [ -- Gitblit v1.9.1