From e267aaa1629571bf8fc6cdcf80152c5558342425 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期四, 21 九月 2023 16:52:26 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/WMS --- src/components/makepager/pager/PagerView.vue | 2 src/views/overview/OverviewListView.vue | 48 + src/views/productManage/product/index.vue | 89 ++- src/router/product/index.js | 2 src/views/overview/index.vue | 79 +- src/components/makepager/CommonFormTableView.vue | 49 + src/api/product/product.js | 33 src/components/makepager/StatusCommonView.vue | 10 src/router/index.js | 4 src/api/overview/overview.js | 81 +++ src/views/productManage/product/AddProductDialog.vue | 585 +++++++++++++--------- src/views/overview/AddOverviewDialog.vue | 332 +++++++++--- /dev/null | 104 ---- src/components/makepager/TableCommonView.vue | 23 src/api/common/other.js | 6 src/components/makepager/pager/mixin/pageMixin.js | 2 src/components/makepager/FormBtnsView.vue | 23 17 files changed, 863 insertions(+), 609 deletions(-) diff --git a/src/api/common/other.js b/src/api/common/other.js index 4f88e95..08db148 100644 --- a/src/api/common/other.js +++ b/src/api/common/other.js @@ -1,9 +1,9 @@ // import request from "@/common/untils/request.js" import axios from "axios" -// 璐熻矗浜� -export const getMemberListFromGrpc = async (data) => { - return await axios.get(`/api/m/getMemberListFromGrpc`, { +// 鏌ヨ鍏徃鍒楄〃 +export const getCompanyList = async (data) => { + return await axios.get(`/api-wms/v1/company/company`, { params: data }) } diff --git a/src/api/overview/overview.js b/src/api/overview/overview.js new file mode 100644 index 0000000..e46a1ad --- /dev/null +++ b/src/api/overview/overview.js @@ -0,0 +1,81 @@ +import request from "@/common/untils/request.js" +import axios from "axios" + +// 鏌ヨ涓氬姟绫诲瀷鍒楄〃 +export const getOperationType = async (data) => { + return await axios.get(`/api-wms/v1/operationType/operationType`, { + params: data + }) +} +// 娣诲姞涓氬姟绫诲瀷 +export function addOperationType(data) { + return request({ + url: "/api-wms/v1/operationType/operationType", + method: "post", + data + }) +} +// 鍒犻櫎涓氬姟绫诲瀷 +export function deleteOperationType(id) { + return request({ + url: `/api-wms/v1/operationType/operationType/${id}`, + method: "delete", + id + }) +} +// 缂栬緫涓氬姟绫诲瀷 +export function updateOperationType(data) { + return request({ + url: `/api-wms/v1/operationType/operationType/${data.id}`, + method: "put", + data + }) +} + +// 鏌ヨ鍏ュ簱/鍑哄簱鍒楄〃 +export const getOperation = async (data) => { + return await axios.get(`/api-wms/v1/operation/operation`, { + params: data + }) +} +// 娣诲姞鍏ュ簱/鍑哄簱 +export function addOperation(data) { + return request({ + url: "/api-wms/v1/operation/operation", + method: "post", + data + }) +} +// 鍒犻櫎鍏ュ簱/鍑哄簱 +export function deleteOperation(id) { + return request({ + url: `/api-wms/v1/operation/operation/${id}`, + method: "delete", + id + }) +} +// 缂栬緫鍏ュ簱/鍑哄簱 +export function updateOperation(data) { + return request({ + url: `/api-wms/v1/operation/operation/${data.id}`, + method: "put", + data + }) +} +// 楠岃瘉 鏇存敼璁板綍鐘舵�� +export function updateStatus(id) { + return request({ + url: `/api-wms/v1/operation/finish/${id}`, + method: "put", + id + }) +} + +// 鑾峰彇浣嶇疆鍒楄〃 +export function getLocationList(data) { + return request({ + url: "/api-wms/v1/location/getLocationList", + method: "post", + data + }) +} diff --git a/src/api/product/product.js b/src/api/product/product.js index 7929fa8..9d105aa 100644 --- a/src/api/product/product.js +++ b/src/api/product/product.js @@ -2,39 +2,40 @@ import axios from "axios" // 浜у搧鍒楄〃 -export const getProductList = async (data) => { - return await axios.get(`/api/p/getProductList`, { - params: data +export function getProductList(data) { + return request({ + url: "/api-wms/v1/product/getProductList", + method: "post", + data }) } -// 鍒涘缓浜у搧 -export function createProduct(data) { +// 娣诲姞浜у搧 +export function addProduct(data) { return request({ - url: "/api/p/createProduct", + url: "/api-wms/v1/product/addProduct", method: "post", data }) } // 鍒犻櫎浜у搧 -export function deleteProduct(data) { +export function deleteProduct(id) { return request({ - url: "/api/p/deleteProduct", + url: `/api-wms/v1/product/deleteProduct/${id}`, method: "delete", - data + id }) } -// 鏇存柊浜у搧 +// 淇敼浜у搧 export function updateProduct(data) { return request({ - url: "/api/p/updateProduct", - method: "put", + url: "/api-wms/v1/product/updateProduct", + method: "post", data }) } - -// 娣诲姞浜у搧鑾峰彇浜у搧鍒楄〃 -export const getProductListFromGrpc = async (data) => { - return await axios.get(`/api/p/getProductListFromGrpc`, { +// 鑾峰彇浜у搧璇︽儏 +export const getProductDetails = async (data) => { + return await axios.get(`/api-wms/v1/product/getProductDetails/${data.id}`, { params: data }) } diff --git a/src/api/supplierManage/supplier.js b/src/api/supplierManage/supplier.js deleted file mode 100644 index 94cad95..0000000 --- a/src/api/supplierManage/supplier.js +++ /dev/null @@ -1,104 +0,0 @@ -import request from "@/common/untils/request.js" -import axios from "axios" - -// 鏈嶅姟鍟嗗垪琛� -export const getSupplierList = async (data) => { - return await axios.get(`/api/s/getSupplierList`, { - params: data - }) -} -// 鍒涘缓鏈嶅姟鍟� -export function createSupplier(data) { - return request({ - url: "/api/s/createSupplier", - method: "post", - data - }) -} -// 鍒犻櫎鏈嶅姟鍟� -export function deleteSupplier(data) { - return request({ - url: "/api/s/deleteSupplier", - method: "delete", - data - }) -} -// 鏇存柊鏈嶅姟鍟� -export function updateSupplier(data) { - return request({ - url: "/api/s/updateSupplier", - method: "put", - data - }) -} -// 淇敼鏈嶅姟鍟嗙姸鎬� -export function changeSupplierStatus(data) { - return request({ - url: "/api/s/changeSupplierStatus", - method: "post", - data - }) -} -// 鐢╥d鏌ヨ鏈嶅姟鍟� -export const findSupplier = async (data) => { - return await axios.get(`/api/s/findSupplier`, { - params: data - }) -} - -// 鏇存柊鏈嶅姟鍟嗙被鍨� -export function updateSupplierType(data) { - return request({ - url: "/api/st/updateSupplierType", - method: "put", - data - }) -} -// 鏈嶅姟鍟嗙被鍨嬪垪琛� -export const getSupplierTypeList = async (data) => { - return await axios.get(`/api/st/getSupplierTypeList`, { - params: data - }) -} - -// 涓婁紶鍚堝悓 -export const createContract = async (data) => { - return await axios.post(`/api/con/createContract`, data, { - headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" } - }) -} -// 鍒犻櫎鍚堝悓 -export function deleteContract(data) { - return request({ - url: "/api/con/deleteContract", - method: "delete", - data - }) -} -// 棰勮鍚堝悓 -export const previewContract = async (data) => { - return await axios.get(`/api/con/previewContract`, { - params: data - }) -} -// 涓嬭浇鍚堝悓 -export const downloadContract = async (data) => { - return await axios.get(`/api/con/downloadContract`, { - params: data - }) -} - -// 鏇存柊鎵�灞炶涓� -export function updateIndustry(data) { - return request({ - url: "/api/i/updateIndustry", - method: "put", - data - }) -} -// 鎵�灞炶涓氬垪琛� -export const getIndustryList = async (data) => { - return await axios.get(`/api/i/getIndustryList`, { - params: data - }) -} diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue index 640f96d..60108e2 100644 --- a/src/components/makepager/CommonFormTableView.vue +++ b/src/components/makepager/CommonFormTableView.vue @@ -50,10 +50,19 @@ v-model="scope.row[item.prop]" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" - @change="selProductClick" + style="width: 80%" + @change=" + (val) => { + selProductClick(val) + } + " > - <el-option v-for="item in productNameOptions" :key="item.id" :label="item.name" :value="item"> + <el-option + v-for="item in productNameOptions" + :key="item.id" + :label="item.name" + :value="{ value: item.id, label: item.name, amount: item.amount, unit: item.unit }" + > </el-option> </el-select> </div> @@ -144,7 +153,7 @@ </template> <script> -// import { getProductListFromGrpc, getProductList } from "@/api/productManage/product" +import { getProductList } from "@/api/product/product" // import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" export default { name: "CommmonFormTableView", @@ -182,10 +191,7 @@ infomation: {} }, productIndex: 0, - productNameOptions: [ - { id: 1, name: "aaaaa" }, - { id: 2, name: "bbbbbbbbbb" } - ], + productNameOptions: [], selOptions: [ { id: 1, name: "浠�" }, { id: 2, name: "鎵�" } @@ -193,7 +199,7 @@ } }, created() { - // this.getProductList() + this.getProductList() this.tableList = this.productTableList }, computed: {}, @@ -205,24 +211,29 @@ methods: { // 浜у搧鍚嶇О async getProductList() { - // let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc - let fn - await fn({ + await getProductList({ page: 1, pageSize: 100 }).then((res) => { - console.log(res.data) - if (res.data.code === 200) { - if (res.data.data.list && res.data.data.list.length > 0) { - this.productList = res.data.data.list + // console.log(res.data) + if (res.code === 200) { + if (res.data && res.data.length > 0) { + this.productNameOptions = res.data } } }) }, // 閫夋嫨浜у搧 - selProductClick(val) { - console.log("aaa") - console.log(val) + selProductClick(item) { + this.tableList.tableData.map((ite) => { + if (ite.productName.label === item.label) { + ite.productId = item.value + ite.productName = item.label + ite.amount = item.amount + ite.unit = item.unit + } + }) + console.log(this.tableList.tableData) }, // 閫夋嫨鍗曚綅 selCommonClick(item) { diff --git a/src/components/makepager/FormBtnsView.vue b/src/components/makepager/FormBtnsView.vue index c223bb0..a1c98fd 100644 --- a/src/components/makepager/FormBtnsView.vue +++ b/src/components/makepager/FormBtnsView.vue @@ -34,6 +34,18 @@ <div class="right-label">{{ "鍑�: " + 0 }}</div> </div> </div> + <div + v-if="!showProduct && !showWarehouse && !showPosition" + class="sub-number" + @click="inOutBoundClick" + :class="{ left_border: addProduct }" + > + <div class="left"><i class="el-icon-s-shop"></i></div> + <div class="right"> + <div class="right-label">{{ 0 }}</div> + <div class="right-label">BOM</div> + </div> + </div> <div v-if="!showProduct && !showWarehouse && !showPosition" class="sub-number"> <div class="left"><i class="el-icon-refresh"></i></div> <div class="right"> @@ -66,6 +78,13 @@ <div class="right"> <div class="right-label">{{ "0.00" + "浠�" }}</div> <div class="right-label">宸查噰璐�</div> + </div> + </div> + <div v-if="!showProduct && !showWarehouse && !showPosition && showSale" class="sub-number"> + <div class="left"><i class="el-icon-bank-card"></i></div> + <div class="right"> + <div class="right-label">{{ "0.00" + "浠�" }}</div> + <div class="right-label">宸插敭</div> </div> </div> <div v-if="showPosition" class="sub-number"> @@ -105,6 +124,10 @@ showProcure: { type: Boolean, default: true + }, + showSale: { + type: Boolean, + default: true } }, data() { diff --git a/src/components/makepager/StatusCommonView.vue b/src/components/makepager/StatusCommonView.vue index dd91c7d..51012b8 100644 --- a/src/components/makepager/StatusCommonView.vue +++ b/src/components/makepager/StatusCommonView.vue @@ -1,6 +1,7 @@ <template> <div class="common-status"> <div v-if="showButton" style="margin-left: 30px"> + <el-button v-if="isValidateClick" plain size="mini" @click="validateClick">楠岃瘉</el-button> <el-button plain size="mini" @click="delClick" :disabled="isDelClick">鍒犻櫎</el-button> <el-button plain size="mini" disabled>鎵撳嵃</el-button> </div> @@ -57,12 +58,21 @@ isDelClick: { type: Boolean, default: false + }, + isValidateClick: { + type: Boolean, + default: false } }, data() { return {} }, methods: { + // 楠岃瘉 + validateClick() { + this.$emit("validateClick") + }, + // 鍒犻櫎 delClick() { this.$emit("delClick") } diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue index 96fedc2..7c023f7 100644 --- a/src/components/makepager/TableCommonView.vue +++ b/src/components/makepager/TableCommonView.vue @@ -35,21 +35,19 @@ > <template slot-scope="scope"> <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span> - <!-- 甯︾偣鐨勫姛鑳� --> + <!-- 鐘舵�佹樉绀� --> <div v-else-if="item.status"> - <!-- <span v-if="scope.row.status == '瀹屾垚'" class="Badge greenSlot"></span> - <span v-else-if="scope.row.status == '鑽夌'" class="Badge redSlot"></span> - <span v-else-if="scope.row.status == '灏辩华'" class="Badge redSlot"></span> - <span v-else-if="scope.row.status == '宸插彇娑�'" class="Badge yellowSlot"></span> --> <span class="Badge" :class="{ - greenSlot: scope.row.status == '瀹屾垚', - redSlot: scope.row.status == '宸插彇娑�', - blueSlot: scope.row.status == '灏辩华', - graySlot: scope.row.status == '鑽夌' + greenSlot: scope.row.status == '4', + redSlot: scope.row.status == '5', + blueSlot: scope.row.status == '3', + graySlot: scope.row.status == '1' }" - >{{ scope.row[item.prop] }}</span + >{{ + item.isCallMethod ? item.getCallMethod(scope.row[item.prop], scope.row) : scope.row[item.prop] + }}</span > </div> <!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 --> @@ -71,13 +69,12 @@ @click="selCommonClick(scope.row)" >{{ scope.row[item.prop] }}</span > - <span v-else-if="item.propType=='mulitple'"> - {{ scope.row[item.prop][item.propTwo]?scope.row[item.prop][item.propTwo]:'--' }} + <span v-else-if="item.propType == 'mulitple'"> + {{ scope.row[item.prop][item.propTwo] ? scope.row[item.prop][item.propTwo] : "--" }} </span> <span :class="item.className ? item.className : ''" v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : scope.row[item.prop] === 0 ? scope.row[item.prop] : "--" }}</span> - </template> </el-table-column> <slot name="tableButton" /> diff --git a/src/components/makepager/pager/PagerView.vue b/src/components/makepager/pager/PagerView.vue index 7c40a5d..bf7c1f2 100644 --- a/src/components/makepager/pager/PagerView.vue +++ b/src/components/makepager/pager/PagerView.vue @@ -40,7 +40,7 @@ default: () => { return { currPage: 1, - pageSize: 10, + pageSize: 15, totalCount: 0 } } diff --git a/src/components/makepager/pager/mixin/pageMixin.js b/src/components/makepager/pager/mixin/pageMixin.js index 3e2e54e..ad77eda 100644 --- a/src/components/makepager/pager/mixin/pageMixin.js +++ b/src/components/makepager/pager/mixin/pageMixin.js @@ -7,7 +7,7 @@ return { pagerOptions: { currPage: 1, - pageSize: 10, + pageSize: 15, totalCount: 0 }, pagerEvents diff --git a/src/router/index.js b/src/router/index.js index 1650b9d..e37ce73 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -101,10 +101,10 @@ (to.path === "/overview/overviewList" || to.path === "/reportForm/inOutboundDetail" || to.path === "/productManage/productList") && - to.query.name + to.params.name ) { console.log(from, next) - to.meta.title = to.query.name + to.meta.title = to.params.name document.title = to.meta.title } }) diff --git a/src/router/product/index.js b/src/router/product/index.js index d1fc5a1..4b807b0 100644 --- a/src/router/product/index.js +++ b/src/router/product/index.js @@ -12,7 +12,7 @@ name: "product", component: product, meta: { - title: "浜у搧绠$悊" + title: "浜у搧" } }, { diff --git a/src/views/overview/AddOverviewDialog.vue b/src/views/overview/AddOverviewDialog.vue index abf3d6d..7e31f48 100644 --- a/src/views/overview/AddOverviewDialog.vue +++ b/src/views/overview/AddOverviewDialog.vue @@ -33,18 +33,46 @@ > <div> <!-- <div>aaa</div> --> - <StatusCommonView :showButton="showButton" :isDelClick="isDelClick" :list="list" @delClick="delClick" /> + <StatusCommonView + :showButton="showButton" + :isValidateClick="isValidateClick" + :isDelClick="isDelClick" + :list="list" + @delClick="delClick" + @validateClick="validateClick" + /> </div> <div class="basic-info"> <div class="basic-info-view"> <el-row> <el-col :span="12"> - <el-form-item v-if="workType === '鏀惰揣'" label="瀹㈡埛" prop="client_name"> + <el-form-item prop="companyName"> + <span slot="label">{{ workType === 1 ? "瀹㈡埛" : workType === 2 ? "閫佽揣鍦板潃" : "鑱旂郴浜�" }}</span> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.companyName" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 90%" + :disabled="!showFooter" + @change="companyChange" + > + <el-option + v-for="item in companyOptions" + :key="item.id" + :label="item.name" + :value="{ value: item.id, label: item.name }" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <!-- <el-col :span="12"> + <el-form-item v-if="workType === 3" label="鑱旂郴浜�" prop="contacterName"> + <el-select + v-model="editConfig.infomation.contacterName" + placeholder="璇烽�夋嫨" + size="mini" + style="width: 90%" :disabled="!showFooter" > <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> @@ -53,94 +81,71 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item v-if="workType === '鍐呴儴璋冩嫧'" label="鑱旂郴浜�" prop="client_name"> + <el-form-item v-if="workType === 2" label="閫佽揣鍦板潃" prop="client_name"> <el-select v-model="editConfig.infomation.memberId" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 90%" :disabled="!showFooter" > <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> </el-option> </el-select> </el-form-item> - </el-col> + </el-col> --> <el-col :span="12"> - <el-form-item v-if="workType === '鍙戣揣'" label="閫佽揣鍦板潃" prop="client_name"> - <el-select - v-model="editConfig.infomation.memberId" - placeholder="璇烽�夋嫨" - size="mini" - style="width: 63%" - :disabled="!showFooter" - > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鏃ユ湡" prop="refundDate"> + <el-form-item label="鏃ユ湡" prop="operationDate"> <el-date-picker - v-model="editConfig.infomation.refundDate" + v-model="editConfig.infomation.operationDate" value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡" - style="width: 63%" + style="width: 90%" :disabled="!showFooter" > </el-date-picker> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鍏ュ簱绫诲瀷" prop="client_name"> - <el-select - v-model="editConfig.infomation.memberId" - placeholder="璇烽�夋嫨" - size="mini" - style="width: 63%" - :disabled="!showFooter" - > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> - </el-option> - </el-select> + <el-form-item label="鍏ュ簱绫诲瀷"> + <el-input v-model="receiptType" disabled style="width: 90%"></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鏉ユ簮鍗曟嵁" prop="memberId"> + <el-form-item label="鏉ユ簮鍗曟嵁" prop="sourceNumber"> <el-input - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.sourceNumber" placeholder="渚嬪:PO0032" - style="width: 63%" + style="width: 90%" :disabled="!showFooter" ></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item v-if="workType !== '鏀惰揣'" label="婧愪綅缃�" prop="client_name"> + <el-form-item v-if="workType !== 1" label="婧愪綅缃�" prop="fromLocationId"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.fromLocationId" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 90%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option v-for="item in toLocationOptions" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item v-if="workType !== '鍙戣揣'" label="浠撳簱浣嶇疆" prop="client_name"> + <el-form-item v-if="workType !== 2" label="浠撳簱浣嶇疆" prop="toLocationId"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.toLocationId" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 90%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option v-for="item in toLocationOptions" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> @@ -149,33 +154,39 @@ </div> <div class="bottom"> <el-tabs v-model="activeName" type="card"> - <el-tab-pane v-if="workType !== '鏀惰揣'" label="璇︽儏" name="detail"> </el-tab-pane> + <!-- <el-tab-pane v-if="workType !== 1" label="璇︽儏" name="detail"> </el-tab-pane> --> <el-tab-pane label="鎿嶄綔" name="first"> </el-tab-pane> <el-tab-pane label="鍏朵粬淇℃伅" name="second"> <div class="purchase-view"> <div class="left"> <div class="second-label">鍏朵粬淇℃伅</div> - <el-form-item v-if="workType !== '鏀惰揣'" label="閫佽揣绛栫暐" prop="client_name"> + <el-form-item v-if="workType !== 1" label="閫佽揣绛栫暐" prop="client_name"> <el-select v-model="editConfig.infomation.memberId" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 90%" :disabled="!showFooter" > <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> </el-option> </el-select> </el-form-item> - <el-form-item label="璐熻矗浜�" prop="client_name"> + <el-form-item label="璐熻矗浜�" prop="contacterName"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.contacterName" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 90%" :disabled="!showFooter" + @change="contacterChange" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option + v-for="item in memberOptions" + :key="item.id" + :label="item.name" + :value="{ value: item.id, label: item.name }" + > </el-option> </el-select> </el-form-item> @@ -184,9 +195,9 @@ </div> </el-tab-pane> <el-tab-pane label="澶囨敞" name="third"> - <el-form-item label="澶囨敞" prop="desc"> + <el-form-item label="澶囨敞" prop="comment"> <el-input - v-model.trim="editConfig.infomation.desc" + v-model.trim="editConfig.infomation.comment" size="mini" type="textarea" style="width: 85%" @@ -216,7 +227,7 @@ </CommonFormTableView> </div> <!-- 璇︽儏 --> - <div v-if="activeName === 'detail'"> + <!-- <div v-if="activeName === 'detail'"> <CommonFormTableView :product-table-list="detailTableList" :detail-enter="!showFooter" @@ -233,7 +244,7 @@ </el-table-column> </template> </CommonFormTableView> - </div> + </div> --> </div> </div> </el-form> @@ -249,6 +260,8 @@ <script> import CommonFormTableView from "@/components/makepager/CommonFormTableView" +import { getLocationList, addOperation, updateOperation, updateStatus, deleteOperation } from "@/api/overview/overview" +import { getCompanyList } from "@/api/common/other" export default { name: "AddOverviewDialog", props: { @@ -258,13 +271,14 @@ return { visible: false, title: "鏂板缓", + operationTypeId: 0, infomation: {} } } }, workType: { - type: String, - default: "鏀惰揣" + type: Number, + default: 1 }, addName: { type: String, @@ -278,26 +292,26 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], - number: [{ required: true, message: "璇疯緭鍏ラ��娆惧崟缂栧彿", trigger: "blur" }], - refundDate: [{ required: true, message: "璇烽�夋嫨閫�娆炬棩鏈�", trigger: "change" }], - memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }], - sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }] + sourceNumber: [{ required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" }], + operationDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" }], + toLocationId: [{ required: true, message: "璇烽�夋嫨浠撳簱浣嶇疆", trigger: "change" }], + fromLocationId: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }] }, - memberOptions: [], - paymentTypeListOptions: [], + companyOptions: [], // 鍏徃 + memberOptions: [{ id: 1, name: "绠$悊鍛�" }], + toLocationOptions: [], // 婧愪綅缃� 浠撳簱浣嶇疆 list: [ - { label: "鑽夌", status: "todo" }, - { label: "姝e湪绛夊緟", status: "todo" }, - { label: "灏辩华", status: "todo" }, - { label: "瀹屾垚", status: "todo" } + { label: "鑽夌", status: "todo", value: 1 }, + { label: "姝e湪绛夊緟", status: "todo", value: 2 }, + { label: "灏辩华", status: "todo", value: 3 }, + { label: "瀹屾垚", status: "todo", value: 4 } ], showButton: true, activeName: "first", productTableList: {}, - tableData: [{ name: "ssss" }], - productId: 0, - isNoProduct: false, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨 + tableData: [], + countId: 0, + isNoProduct: true, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨 showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳 isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑� showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨 @@ -306,41 +320,72 @@ detailTableData: [{ name: "ssss" }], detailId: 0, isNoDetail: false, // 娣诲姞璇︽儏鏄庣粏琛屾椂鏄惁鏈�夋嫨 - tableColumn: [] + tableColumn: [], + receiptType: this.addName, // 鍏ュ簱绫诲瀷 + companyObj: {}, + contacterObj: {}, + isValidateClick: false // 楠岃瘉鏄惁鏄剧ず } }, created() { this.setTableForm() this.setBottonView() this.setDetailTableForm() - this.activeName = this.workType === "鏀惰揣" ? "first" : "detail" + this.getCompanyList() + this.getLocationList() }, methods: { + // 鑾峰彇鍏徃鍒楄〃 + async getCompanyList() { + await getCompanyList().then((res) => { + console.log(res) + if (res.data.code === 200) { + this.companyOptions = res.data.data + } + }) + }, + // 鑾峰彇浠撳簱浣嶇疆鍒楄〃 + async getLocationList() { + await getLocationList({ + keyWord: "", + page: 0, + pageSize: 0 + }).then((res) => { + console.log(res) + if (res.code === 200) { + this.toLocationOptions = res.data + } + }) + }, // 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず setBottonView() { if (this.editConfig.title === "鏂板缓") { this.showButton = false this.showEdit = false this.showFooter = true + this.isValidateClick = false } else if (this.editConfig.infomation.status === "瀹屾垚") { this.showButton = true this.showEdit = false this.isDelClick = true this.showFooter = false + this.isValidateClick = false } else if (this.editConfig.infomation.status === "宸插彇娑�") { this.showButton = true this.showEdit = false this.showFooter = false + this.isValidateClick = false } else { this.showButton = true this.showEdit = true this.showFooter = false + this.isValidateClick = true } if (this.editConfig.title === "鏂板缓") { this.list[0].status = "active" } else { this.list.map((item) => { - if (item.label === this.editConfig.infomation.status) { + if (item.value === this.editConfig.infomation.status) { item.status = "active" } else { item.status = "todo" @@ -360,28 +405,102 @@ this.setTableForm() }, // 淇濆瓨 - saveClick() {}, + saveClick(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + for (let i = 0; i < this.tableData.length; i++) { + if (this.tableData[i].productName.length === 0) { + this.isNoProduct = true + break + } else { + this.isNoProduct = false + } + } + if (this.isNoProduct) { + this.$message.error("璇锋坊鍔犳槑缁嗚鎴栭�夋嫨浜у搧涓嶈兘涓虹┖") + } else { + let requestUrl = this.editConfig.title === "鏂板缓" ? addOperation : updateOperation + let params = this.saveParams() + requestUrl({ + ...params + }).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("娣诲姞鎴愬姛") + this.$parent.getData() + } + }) + } + } + }) + }, + saveParams() { + let data = this.editConfig.infomation + let companyID = 0 + let companyName = "" + let contacterID = 0 + let contacterName = "" + if (this.editConfig.title === "鏂板缓") { + companyID = this.companyObj.length === 0 ? 0 : this.companyObj.value + companyName = this.companyObj.length === 0 ? 0 : this.companyObj.label + contacterID = this.contacterObj.length === 0 ? 0 : this.contacterObj.value + contacterName = this.contacterObj.length === 0 ? 0 : this.contacterObj.label + } else { + companyID = this.companyObj.length === 0 ? data.companyID : this.companyObj.value + companyName = this.companyObj.length === 0 ? data.companyName : this.companyObj.label + contacterID = this.contacterObj.length === 0 ? data.contacterID : this.contacterObj.value + contacterName = this.contacterObj.length === 0 ? data.contacterName : this.contacterObj.label + } + let params = { + comment: data.comment || "", + companyID: companyID, + companyName: companyName, + contacterID: contacterID, + contacterName: contacterName, + details: this.tableData, + fromLocationId: data.fromLocationId || 0, + id: data.id, + number: "", + operationDate: data.operationDate || "", + operationTypeId: this.editConfig.operationTypeId, + sourceNumber: data.sourceNumber || "", + status: 3, + toLocationId: data.toLocationId || 0 + } + return params + }, // 鍒犻櫎 - delClick() {}, + async delClick() { + await deleteOperation(this.editConfig.infomation.id).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("鍒犻櫎鎴愬姛") + this.$parent.getData() + } + }) + }, // 鎿嶄綔鍒楄〃 setTableForm() { + this.tableData = this.editConfig.title !== "鏂板缓" ? this.editConfig.infomation.details : [] this.productTableList = { tableData: this.tableData, tableColumn: [ - { label: "浜у搧", prop: "name", productName: true, isRequird: true }, - { label: "璇存槑", prop: "number", input: true }, - { label: "鏃ユ湡", prop: "amount", date: true, isRequird: true }, - { label: "鎴鏃ユ湡", prop: "price", date: true }, - { label: "瀹屾垚", prop: "total", inputFloat: true }, - { label: "璁¢噺鍗曚綅", prop: "total", select: true } + { label: "浜у搧", prop: "productName", productName: true, isRequird: true }, + // { label: "璇存槑", prop: "number", input: true }, + // { label: "鏃ユ湡", prop: "amount", date: true, isRequird: true }, + // { label: "鎴鏃ユ湡", prop: "price", date: true }, + { label: "瀹屾垚", prop: "amount", inputFloat: true }, + { label: "璁¢噺鍗曚綅", prop: "unit" } ] } }, // 鎿嶄綔杈撳叆 inputContent(val, prop, row) { - this.productId = row.productId + this.countId = row.countId this.tableData.map((item) => { - if (item.productId === row.productId) { + if (item.countId === row.countId) { item[prop] = val } }) @@ -391,24 +510,21 @@ if (value === "鎿嶄綔") { console.log(this.tableData) for (let i = 0; i < this.tableData.length; i++) { - if (this.tableData[i].name.length === 0) { - this.isNoProduct = true + if (this.tableData[i].productName.length === 0) { + this.isNoProduct = false break } else { - this.isNoProduct = false + this.isNoProduct = true } } - if (!this.isNoProduct) { - this.productId++ + if (this.isNoProduct) { + this.countId++ this.tableData.push({ - productId: this.productId, - id: 0, + countId: this.countId, + productId: "", amount: 0, - desc: "", - name: "", - number: "", - price: 0, - total: 0 + unit: "", + productName: "" }) } } else { @@ -479,6 +595,26 @@ item[prop] = val } }) + }, + // 瀹㈡埛閫夋嫨 + companyChange(val) { + console.log(val) + this.companyObj = val + }, + // 璐熻矗浜洪�夋嫨 + contacterChange(val) { + this.contacterObj = val + }, + // 楠岃瘉 + async validateClick() { + await updateStatus(this.editConfig.infomation.id).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("楠岃瘉鎴愬姛") + this.$parent.getData() + } + }) } } } diff --git a/src/views/overview/OverviewListView.vue b/src/views/overview/OverviewListView.vue index 1f628c3..aab7906 100644 --- a/src/views/overview/OverviewListView.vue +++ b/src/views/overview/OverviewListView.vue @@ -27,14 +27,14 @@ v-if="editConfig.visible" :work-type="workType" :edit-common-config="editConfig" - :add-name="this.$route.query.name" + :add-name="this.$route.params.name" /> </div> </template> <script> import pageMixin from "@/components/makepager/pager/mixin/pageMixin" -import { getProductList } from "@/api/product/product" +import { getOperation } from "@/api/overview/overview" // import DetailProduct from "@/views/productManage/product/DetailProduct" import AddOverviewDialog from "@/views/overview/AddOverviewDialog" @@ -59,12 +59,13 @@ title: "鏂板缓", infomation: {} }, - workType: this.$route.query.workType + workType: this.$route.params.workType } }, created() { this.setTable() this.getData() + console.log(this.$route.params.workType) }, methods: { setTable() { @@ -88,37 +89,37 @@ let tableColumn = [ { label: "鍗曞彿", - prop: "id", + prop: "number", isShowColumn: true, default: true }, { label: "浠�", - prop: "deviceName", + prop: "from", isShowColumn: showcol.includes("浠�"), default: false }, { label: "鑷�", - prop: "id", + prop: "to", isShowColumn: showcol.includes("鑷�"), default: false }, { label: "鑱旂郴浜�", - prop: "deviceId", + prop: "companyName", isShowColumn: showcol.includes("鑱旂郴浜�"), default: false }, { label: "璐熻矗浜�", - prop: "shopName", + prop: "contacterName", isShowColumn: showcol.includes("璐熻矗浜�"), default: false }, { label: "鏃ユ湡", - prop: "preTime", + prop: "operationDate", isShowColumn: showcol.includes("鏃ユ湡"), default: false, date: true @@ -143,7 +144,7 @@ }, { label: "鏉ユ簮鍗曟嵁", - prop: "faultLevel", + prop: "sourceNumber", isShowColumn: showcol.includes("鏉ユ簮鍗曟嵁"), default: false }, @@ -165,7 +166,9 @@ width: 120, isShowColumn: showcol.includes("鐘舵��"), default: false, - status: true + status: true, + isCallMethod: true, + getCallMethod: this.getStatus } ] return tableColumn @@ -175,23 +178,23 @@ this.tableList.tableColumn = this.setTableColumn(val) }, // 璇锋眰鏁版嵁 - async getData(val, content) { - await getProductList({ - [val]: content, + async getData() { + await getOperation({ + operationTypeId: this.$route.params.id, page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }).then((res) => { + console.log(res.data.data) if (res.data.code === 200) { - const list = res.data.data.list.map((item) => { + const list = res.data.data.map((item) => { return { ...item, - supplierNumber: item.supplier.number, - status: "灏辩华", - preTime: "2023-09-04 11:20:00" + from: item.fromLocation.name, + to: item.toLocation.name } }) this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.data.data.total + this.pagerOptions.totalCount = res.data.total } }) }, @@ -204,12 +207,19 @@ console.log(row) this.editConfig.visible = true this.editConfig.title = "缂栬緫" + this.editConfig.operationTypeId = this.$route.params.id this.editConfig.infomation = { ...row } }, // 鏂板缓 addBtnClick() { this.editConfig.visible = true this.editConfig.title = "鏂板缓" + this.editConfig.operationTypeId = this.$route.params.id + this.editConfig.infomation = {} + }, + // 鐘舵�� + getStatus(val) { + return val === 1 ? "鑽夌" : val === 3 ? "灏辩华" : "瀹屾垚" } } } diff --git a/src/views/overview/index.vue b/src/views/overview/index.vue index 6c912c4..91e33e5 100644 --- a/src/views/overview/index.vue +++ b/src/views/overview/index.vue @@ -10,9 +10,9 @@ v-for="item in tableList" :key="item.id" :class="{ - overview_active: item.status === 'active', - overview_done: item.status === 'done', - overview_todo: item.status === 'todo' + overview_active: item.baseOperationType === 1, + overview_done: item.baseOperationType === 2, + overview_todo: item.baseOperationType === 3 }" > <div class="top"> @@ -48,6 +48,7 @@ <script> import pageMixin from "@/components/makepager/pager/mixin/pageMixin" +import { getOperationType } from "@/api/overview/overview" export default { name: "OverView", @@ -57,48 +58,7 @@ computed: {}, data() { return { - tableList: [ - { - name: "閲囪喘鍏ュ簱", - status: "active", - workType: "鏀惰揣" - }, - { - name: "鍐呴儴璋冩嫧", - status: "done", - workType: "鍐呴儴璋冩嫧" - }, - { - name: "璁㈠崟鍙戣揣鍑哄簱", - status: "done", - workType: "鍙戣揣" - }, - { - name: "2", - status: "active", - workType: "鏀惰揣" - }, - { - name: "3", - status: "todo", - workType: "鏀惰揣" - }, - { - name: "2", - status: "active", - workType: "鏀惰揣" - }, - { - name: "3", - status: "todo", - workType: "鏀惰揣" - }, - { - name: "4444444", - status: "todo", - workType: "鍙戣揣" - } - ], + tableList: [], editConfig: { visible: false, title: "鏂板缓", @@ -106,15 +66,38 @@ } } }, - created() {}, + created() { + this.getData() + }, methods: { getList(val) { console.log(val) }, labelClick(item) { - this.$router.push({ path: "/overview/overviewList", query: { name: item.name, workType: item.workType } }) + console.log(item) + this.$router.push({ + name: "overviewList", + params: { name: item.name, workType: item.baseOperationType, id: item.id } + }) }, - getData() {} + async getData() { + await getOperationType({ + keyword: "", + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + }).then((res) => { + console.log(res.data.data) + if (res.data.code === 200) { + const list = res.data.data.map((item) => { + return { + ...item + } + }) + this.tableList = list || [] + this.pagerOptions.totalCount = res.data.total + } + }) + } } } </script> diff --git a/src/views/productManage/product/AddProductDialog.vue b/src/views/productManage/product/AddProductDialog.vue index 8c68765..b8542b9 100644 --- a/src/views/productManage/product/AddProductDialog.vue +++ b/src/views/productManage/product/AddProductDialog.vue @@ -38,27 +38,28 @@ </div> <div class="basic-info"> - <FormBtnsView :add-product="addProduct" @inOutBoundClick="inOutBoundClick" :show-procure="showProcure" /> + <FormBtnsView + :add-product="addProduct" + @inOutBoundClick="inOutBoundClick" + :show-procure="showProcure" + :show-sale="showSale" + /> <div class="basic-info-view"> <el-row> - <el-col :span="20"> - <div style="margin-left: 20px">浜у搧鍚嶇О</div> - <el-form-item label="" prop="client_name" label-width="20px"> - <el-input - v-model="editConfig.infomation.client_name" - placeholder="" - :disabled="!showFooter" - ></el-input> + <el-col :span="23"> + <div style="margin-left: 20px"><span style="color: #f56c6c">*</span>浜у搧鍚嶇О</div> + <el-form-item label="" prop="name" label-width="20px"> + <el-input v-model="editConfig.infomation.name" placeholder="" :disabled="!showFooter"></el-input> </el-form-item> </el-col> - <el-col :span="4"> + <!-- <el-col :span="4"> <div class="upload" @click="toGetImg"> <img v-if="imageSrc" :src="imageSrc" style="height: 90px; width: 90px" /> <div v-else class="upload-icon"><i class="el-icon-plus"></i></div> </div> - </el-col> - <el-col :span="24"> - <div style="margin-left: 20px; margin-top: -30px"> + </el-col> --> + <!-- <el-col :span="24"> + <div style="margin-left: 20px"> <el-checkbox v-model="marketable" :disabled="!showFooter" @change="checkboxChange('閿�鍞�', $event)" >鍙攢鍞�</el-checkbox > @@ -66,144 +67,135 @@ >鍙噰璐�</el-checkbox > </div> - </el-col> + </el-col> --> </el-row> </div> <div class="bottom"> <el-tabs v-model="activeName" type="card"> <el-tab-pane label="鍩烘湰淇℃伅" name="first"></el-tab-pane> - <el-tab-pane label="閿�鍞�" name="sale"></el-tab-pane> - <el-tab-pane label="閲囪喘" name="second"></el-tab-pane> + <!-- <el-tab-pane label="閿�鍞�" name="sale"></el-tab-pane> + <el-tab-pane label="閲囪喘" name="second"></el-tab-pane> --> <el-tab-pane label="搴撳瓨" name="third"></el-tab-pane> - <el-tab-pane label="浼氳" name="four"></el-tab-pane> + <!-- <el-tab-pane label="浼氳" name="four"></el-tab-pane> --> </el-tabs> <!-- 鍩烘湰淇℃伅 --> <div v-if="activeName === 'first'"> <div class="purchase-view"> <div class="left"> - <el-form-item label="浜у搧绫诲瀷" prop="client_name" style="margin-left: 20px"> + <el-form-item label="浜у搧绫诲瀷" prop="productType" style="margin-left: 20px"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.productType" placeholder="璇烽�夋嫨" size="mini" style="width: 85%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option v-for="item in productTypeOptions" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> - <el-form-item label="寮�绁ㄧ瓥鐣�" prop="client_name" style="margin-left: 20px"> + <el-form-item label="寮�绁ㄧ瓥鐣�" prop="invoicingStrategy" style="margin-left: 20px"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.invoicingStrategy" placeholder="璇烽�夋嫨" size="mini" style="width: 85%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option v-for="item in strategyOptions" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> + <div class="font_size_13" style="color: gray">鍙偍瀛樼殑浜у搧鏄偍绠$悊搴撳瓨姘村钩鐨勫疄鐗╅」鐩��</div> + <div class="font_size_13" style="color: gray">鎮ㄥ彲浠ュ湪鍙戣揣鍓嶄负鍏跺紑鍏风粨绠楀崟銆�</div> </el-form-item> - <el-form-item label="鐗╂枡绫诲瀷" prop="model"> + <el-form-item label="鐗╂枡绫诲瀷" prop="model" style="margin-left: 20px"> <el-select - v-model="form.model" + v-model="editConfig.infomation.model" placeholder="璇烽�夋嫨" filterable clearable - style="width: 100%" + style="width: 85%" :popper-append-to-body="false" > <el-option v-for="item in materialTypeList" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> - <el-form-item label="鍗曚綅" prop="unit"> - <el-input v-model="form.unit" placeholder="璇疯緭鍏�"></el-input> + <el-form-item label="鍗曚綅" prop="unit" style="margin-left: 20px"> + <el-input v-model="editConfig.infomation.unit" placeholder="璇疯緭鍏�" style="width: 85%"></el-input> </el-form-item> - <el-form-item label="浜у搧绫诲埆" prop="client_name" style="margin-left: 20px"> - <el-select - v-model="editConfig.infomation.memberId" - placeholder="璇烽�夋嫨" - size="mini" + + <el-form-item label="浜у搧鏍囩" prop="productTagName" style="margin-left: 20px"> + <el-input + v-model="editConfig.infomation.productTagName" + placeholder="璇疯緭鍏�" style="width: 85%" - :disabled="!showFooter" - > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="浜у搧鏍囩" prop="client_name" style="margin-left: 20px"> - <el-select - v-model="editConfig.infomation.memberId" - placeholder="璇烽�夋嫨" - size="mini" - style="width: 85%" - :disabled="!showFooter" - > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="鍏徃" prop="client_name" style="margin-left: 20px"> - <el-select - v-model="editConfig.infomation.memberId" - placeholder="璇烽�夋嫨" - size="mini" - style="width: 85%" - :disabled="!showFooter" - > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> - </el-option> - </el-select> + ></el-input> </el-form-item> </div> <div class="right"> - <el-form-item label="閿�鍞环鏍�" prop="name" style="margin-left: 20px"> + <el-form-item label="閿�鍞环鏍�" prop="salePrice" style="margin-left: 20px"> <span>锟�</span> - <el-input - v-model.trim="editConfig.infomation.name" + <el-input-number + v-model.trim="editConfig.infomation.salePrice" placeholder="璇疯緭鍏�" + :min="0" + :controls="false" size="mini" - style="width: 85%" + style="width: 81%" :disabled="!showFooter" - ></el-input> + ></el-input-number> </el-form-item> - <el-form-item label="閿�椤圭◣" prop="client_name" style="margin-left: 20px"> + <el-form-item label="閿�椤圭◣" prop="customerTaxes" style="margin-left: 20px"> + <el-input-number + v-model="editConfig.infomation.customerTaxes" + placeholder="璇疯緭鍏�" + :min="0" + :controls="false" + style="width: 85%; margin-right: 5px" + ></el-input-number> + </el-form-item> + <el-form-item label="鎴愭湰" prop="cost" style="margin-left: 20px"> + <span>锟�</span> + <el-input-number + v-model.trim="editConfig.infomation.cost" + placeholder="璇疯緭鍏�" + :min="0" + :controls="false" + size="mini" + style="width: 81%" + :disabled="!showFooter" + ></el-input-number> + </el-form-item> + <el-form-item label="浜у搧绫诲埆" prop="categoryId" style="margin-left: 20px"> <el-select - v-model="editConfig.infomation.memberId" - multiple + v-model="editConfig.infomation.categoryId" placeholder="璇烽�夋嫨" size="mini" style="width: 85%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option + v-for="item in productCategoryOptions" + :key="item.id" + :label="item.name" + :value="item.id" + > </el-option> </el-select> </el-form-item> - <el-form-item label="鎴愭湰" prop="name" style="margin-left: 20px"> - <span>锟�</span> + <el-form-item label="鍐呴儴鍙傝��" prop="internalReference" style="margin-left: 20px"> <el-input - v-model.trim="editConfig.infomation.name" + v-model.trim="editConfig.infomation.internalReference" placeholder="璇疯緭鍏�" size="mini" style="width: 85%" :disabled="!showFooter" ></el-input> </el-form-item> - <el-form-item label="鍐呴儴鍙傝��" prop="name" style="margin-left: 20px"> + <el-form-item label="鏉$爜" prop="barcode" style="margin-left: 20px"> <el-input - v-model.trim="editConfig.infomation.name" - placeholder="璇疯緭鍏�" - size="mini" - style="width: 85%" - :disabled="!showFooter" - ></el-input> - </el-form-item> - <el-form-item label="鏉$爜" prop="name" style="margin-left: 20px"> - <el-input - v-model.trim="editConfig.infomation.name" + v-model.trim="editConfig.infomation.barcode" placeholder="璇疯緭鍏�" size="mini" style="width: 85%" @@ -214,41 +206,197 @@ </div> <div class="all"> <div class="second-label">鍐呴儴璇存槑</div> - <el-form-item label="" prop="name" style="margin-left: 20px" label-width="0px"> + <el-form-item label="" prop="internalNotes" style="margin-left: 20px" label-width="0px"> <el-input - v-model.trim="editConfig.infomation.desc" + v-model.trim="editConfig.infomation.internalNotes" placeholder="璇疯緭鍏�" size="mini" type="textarea" - style="width: 100%" + style="width: 95%" :autosize="{ minRows: 4 }" :disabled="!showFooter" ></el-input> </el-form-item> </div> </div> - <!-- 閿�鍞� --> - <div v-if="activeName === 'sale'"> + <!-- 搴撳瓨 --> + <div v-if="activeName === 'third'"> <div class="purchase-view"> + <div class="all"> + <div class="second-label">鐗╂祦</div> + </div> + </div> + <div class="purchase-view"> + <!-- <div class="left"> + <div class="second-label">鎿嶄綔</div> + <el-form-item label="璺嚎" prop="checkedRoute" style="margin-left: 20px"> + <el-checkbox-group v-model="checkedRoute" :min="1" :max="2"> + <el-checkbox v-for="city in route" :label="city" :key="city" class="list-item">{{ + city.length > 20 ? city.substring(0, 20) + "..." : city + }}</el-checkbox> + </el-checkbox-group> + </el-form-item> + </div> --> + <div class="left"> - <div class="second-label">{{ "鍔犲敭&浜ゅ弶閿�鍞�" }}</div> - <el-form-item label="鍙�変骇鍝�" prop="checkedCities" style="margin-left: 20px"> + <el-form-item label="璐熻矗浜�" prop="principal" style="margin-left: 20px" label-width="80px"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.principal" + placeholder="璇烽�夋嫨" + size="mini" + style="width: 85%" + :disabled="!showFooter" + > + <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="閲嶉噺" prop="weight" style="margin-left: 20px" label-width="80px"> + <el-input-number + v-model="editConfig.infomation.weight" + placeholder="璇疯緭鍏�" + :min="0" + :precision="2" + :controls="false" + style="width: 85%" + :disabled="!showFooter" + ></el-input-number> + <span> kg</span> + </el-form-item> + <el-form-item label="浣撶Н" prop="volume" style="margin-left: 20px" label-width="80px"> + <el-input-number + v-model="editConfig.infomation.volume" + placeholder="璇疯緭鍏�" + :min="0" + :precision="2" + :controls="false" + style="width: 85%" + :disabled="!showFooter" + ></el-input-number> + <span> m鲁</span> + </el-form-item> + </div> + <div class="right"> + <el-form-item + label="鍒堕�犲墠缃椂闂�" + prop="deliveryAdvanceTime" + style="margin-left: 20px" + label-width="130px" + > + <el-input-number + v-model="editConfig.infomation.deliveryAdvanceTime" + placeholder="璇疯緭鍏�" + :min="0" + :precision="0" + :controls="false" + style="width: 85%" + :disabled="!showFooter" + ></el-input-number> + <span> 澶╂暟</span> + </el-form-item> + <el-form-item label="鐢熶骇璁㈠崟鍑嗗澶╂暟" prop="name" style="margin-left: 20px" label-width="130px"> + <el-input-number + v-model="editConfig.infomation.customerTaxes" + placeholder="璇疯緭鍏�" + :min="0" + :precision="0" + :controls="false" + style="width: 85%" + :disabled="!showFooter" + ></el-input-number> + <span> 澶╂暟</span> + </el-form-item> + <el-form-item label="瀹㈡埛鍓嶇疆鏃堕棿" prop="aaa" style="margin-left: 20px" label-width="130px"> + <el-select + v-model="editConfig.infomation.aaa" multiple placeholder="璇烽�夋嫨" size="mini" style="width: 85%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option v-for="item in aaaOptions" :key="item.id" :label="item.username" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </div> + </div> + <div class="purchase-view"> + <div class="left"> + <div class="second-label">鏀惰揣璇存槑</div> + <el-form-item label="" prop="inStorageExplain" style="margin-left: 20px" label-width="0px"> + <el-input + v-model.trim="editConfig.infomation.inStorageExplain" + placeholder="姝よ鏄庢坊鍔犲埌鏀惰揣璁㈠崟涓�(渚嬪锛屼骇鍝佸湪浠撳簱鐨勫瓨鍌ㄤ綅缃�)" + size="mini" + type="textarea" + style="width: 95%" + :autosize="{ minRows: 4 }" + :disabled="!showFooter" + ></el-input> + </el-form-item> + </div> + <div class="right"> + <div class="second-label">鍑哄簱鍗曡鏄�</div> + <el-form-item label="" prop="outStorageExplain" style="margin-left: 20px" label-width="0px"> + <el-input + v-model.trim="editConfig.infomation.outStorageExplain" + placeholder="姝ら�氱煡宸叉坊鍔犲埌閫佽揣鍗曚腑" + size="mini" + type="textarea" + style="width: 95%" + :autosize="{ minRows: 4 }" + :disabled="!showFooter" + ></el-input> + </el-form-item> + </div> + </div> + <div class="purchase-view"> + <div class="left"> + <div class="second-label">鍐呴儴璋冩嫧璇存槑</div> + <el-form-item label="" prop="internalTransferExplain" style="margin-left: 20px" label-width="0px"> + <el-input + v-model.trim="editConfig.infomation.internalTransferExplain" + placeholder="姝よ鏄庢坊鍔犲埌鍐呴儴璋冩嫧璁㈠崟涓�(渚嬪锛屽湪浠撳簱涓綍澶勬彁鍙栦骇鍝�)" + size="mini" + type="textarea" + style="width: 100%" + :autosize="{ minRows: 4 }" + :disabled="!showFooter" + ></el-input> + </el-form-item> + </div> + <div class="right"></div> + </div> + </div> + <!-- 涓嬮潰涓嶈鍒� 浜屾湡鎴栦笁鏈熶細鐢ㄥ埌 --> + <!-- 閿�鍞� --> + <!-- <div v-if="activeName === 'sale'"> + <div class="purchase-view"> + <div class="left"> + <div class="second-label">{{ "鍔犲敭&浜ゅ弶閿�鍞�" }}</div> + <el-form-item label="鍙�変骇鍝�" prop="selectProduct" style="margin-left: 20px"> + <el-select + v-model="editConfig.infomation.selectProduct" + multiple + placeholder="璇烽�夋嫨" + size="mini" + style="width: 85%" + :disabled="!showFooter" + > + <el-option + v-for="item in selectProductOptions" + :key="item.id" + :label="item.name" + :value="item.id" + > </el-option> </el-select> </el-form-item> <div class="second-label">閿�鍞鏄�</div> - <el-form-item label="" prop="desc" style="margin-left: 20px" label-width="20px"> + <el-form-item label="" prop="sellExplain" style="margin-left: 20px" label-width="20px"> <el-input - v-model.trim="editConfig.infomation.desc" + v-model.trim="editConfig.infomation.sellExplain" size="mini" type="textarea" style="width: 85%" @@ -259,9 +407,9 @@ </div> <div class="right"></div> </div> - </div> + </div> --> <!-- 閲囪喘 --> - <div v-if="activeName === 'second'"> + <!-- <div v-if="activeName === 'second'"> <CommonFormTableView :product-table-list="productTableList" :detail-enter="!showFooter" @@ -316,137 +464,7 @@ </el-form-item> </div> </div> - </div> - <!-- 搴撳瓨 --> - <div v-if="activeName === 'third'"> - <div class="purchase-view"> - <div class="left"> - <div class="second-label">浣滀笟</div> - <el-form-item label="璺嚎" prop="checkedCities" style="margin-left: 20px"> - <el-checkbox-group v-model="checkedCities" :min="1" :max="2"> - <el-checkbox v-for="city in cities" :label="city" :key="city" class="list-item">{{ - city.length > 20 ? city.substring(0, 20) + "..." : city - }}</el-checkbox> - </el-checkbox-group> - </el-form-item> - </div> - <div class="right"> - <div class="second-label">鐗╂祦</div> - <el-form-item label="璐熻矗浜�" prop="name" style="margin-left: 20px"> - <el-select - v-model="editConfig.infomation.memberId" - multiple - placeholder="璇烽�夋嫨" - size="mini" - style="width: 85%" - :disabled="!showFooter" - > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="閲嶉噺" prop="client_name" style="margin-left: 20px"> - <el-input - v-model.trim="editConfig.infomation.name" - placeholder="璇疯緭鍏�" - size="mini" - style="width: 85%" - :disabled="!showFooter" - ></el-input> - <span> kg</span> - </el-form-item> - <el-form-item label="浣撶Н" prop="client_name" style="margin-left: 20px"> - <el-input - v-model.trim="editConfig.infomation.name" - placeholder="璇疯緭鍏�" - size="mini" - style="width: 85%" - :disabled="!showFooter" - ></el-input> - <span> m鲁</span> - </el-form-item> - <el-form-item label="瀹㈡埛鍓嶇疆鏃堕棿" prop="client_name" style="margin-left: 20px"> - <el-input - v-model.trim="editConfig.infomation.name" - placeholder="璇疯緭鍏�" - size="mini" - style="width: 85%" - :disabled="!showFooter" - ></el-input> - <span> 澶�</span> - </el-form-item> - <el-form-item label="HS缂栫爜" prop="name" style="margin-left: 20px"> - <el-input - v-model.trim="editConfig.infomation.name" - placeholder="璇疯緭鍏�" - size="mini" - style="width: 85%" - :disabled="!showFooter" - ></el-input> - </el-form-item> - <el-form-item label="璐х墿鍘熶骇鍦�" prop="name" style="margin-left: 20px"> - <el-select - v-model="editConfig.infomation.memberId" - multiple - placeholder="璇烽�夋嫨" - size="mini" - style="width: 85%" - :disabled="!showFooter" - > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - </div> - </div> - <div class="purchase-view"> - <div class="left"> - <div class="second-label">鏀惰揣璇存槑</div> - <el-form-item label="" prop="name" style="margin-left: 20px" label-width="0px"> - <el-input - v-model.trim="editConfig.infomation.desc" - placeholder="姝よ鏄庢坊鍔犲埌鏀惰揣璁㈠崟涓�" - size="mini" - type="textarea" - style="width: 100%" - :autosize="{ minRows: 4 }" - :disabled="!showFooter" - ></el-input> - </el-form-item> - </div> - <div class="right"> - <div class="second-label">鍑哄簱鍗曡鏄�</div> - <el-form-item label="" prop="name" style="margin-left: 20px" label-width="0px"> - <el-input - v-model.trim="editConfig.infomation.desc" - placeholder="璇疯緭鍏�" - size="mini" - type="textarea" - style="width: 100%" - :autosize="{ minRows: 4 }" - :disabled="!showFooter" - ></el-input> - </el-form-item> - </div> - </div> - <div class="purchase-view"> - <div class="left"> - <div class="second-label">鍐呴儴璋冩嫧璇存槑</div> - <el-form-item label="" prop="name" style="margin-left: 20px" label-width="0px"> - <el-input - v-model.trim="editConfig.infomation.desc" - placeholder="璇疯緭鍏�" - size="mini" - type="textarea" - style="width: 100%" - :autosize="{ minRows: 4 }" - :disabled="!showFooter" - ></el-input> - </el-form-item> - </div> - <div class="right"></div> - </div> - </div> + </div> --> </div> </div> </el-form> @@ -461,7 +479,9 @@ </template> <script> -import CommonFormTableView from "@/components/makepager/CommonFormTableView" +// import CommonFormTableView from "@/components/makepager/CommonFormTableView" +import { getProductCategoryList } from "@/api/product/productCategory" +import { getProductList, addProduct, updateProduct } from "@/api/product/product" let inputElement = null export default { @@ -473,32 +493,40 @@ return { visible: false, title: "鏂板缓", - infomation: { type: [] } + infomation: {} } } } }, - components: { CommonFormTableView }, + components: {}, computed: {}, data() { return { dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], - number: [{ required: true, message: "璇疯緭鍏ラ��娆惧崟缂栧彿", trigger: "blur" }], - refundDate: [{ required: true, message: "璇烽�夋嫨閫�娆炬棩鏈�", trigger: "change" }], - memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }], - sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }] + name: [{ required: true, message: "璇疯緭鍏ヤ骇鍝佸悕绉�", trigger: "blur" }], + model: [{ required: true, message: "璇烽�夋嫨鐗╂枡绫诲瀷", trigger: "change" }], + salePrice: [{ required: true, message: "璇疯緭鍏ラ攢鍞环鏍�", trigger: "blur" }], + unit: [{ required: true, message: "璇疯緭鍏ュ崟浣�", trigger: "blur" }] }, - memberOptions: [], - paymentTypeListOptions: [], - numberList: [ - { label: "鑽夌", status: "todo" }, - { label: "姝e湪绛夊緟", status: "todo" }, - { label: "灏辩华", status: "todo" }, - { label: "瀹屾垚", status: "todo" } + memberOptions: [ + { + name: "admin", + id: 1 + } ], + productCategoryOptions: [], // 浜у搧绫诲埆 + productTypeOptions: [ + { name: "鑳芥秷鑰�", id: 1 }, + { name: "鏈嶅姟", id: 2 }, + { name: "鍙簱瀛樹骇鍝�", id: 3 } + ], // 浜у搧绫诲瀷 + strategyOptions: [ + { name: "璁㈣喘鏁伴噺", id: 1 }, + { name: "浜や粯鏁伴噺", id: 2 } + ], // 寮�绁ㄧ瓥鐣� + selectProductOptions: [], // 鍙�変骇鍝� showButton: true, activeName: "first", productTableList: {}, @@ -510,10 +538,11 @@ imageSrc: "", // 鍥剧墖鍦板潃 marketable: true, // 鍙攢鍞� procurable: true, // 鍙噰璐� - checkedCities: ["涓婃捣", "鍖椾含"], - cities: ["涓婃捣瀵瑰瀵瑰瀵瑰澶氬澶氬澶氬澶氬寳浜瀵瑰瀵瑰瀵�", "鍖椾含瀵瑰瀵瑰瀵瑰澶�", "骞垮窞", "娣卞湷"], + checkedRoute: [], + route: ["鍒堕��", "娌虫睜鐢熶骇鍒堕�犱粨"], addProduct: false, showProcure: true, + showSale: true, materialTypeList: [ { name: "鍘熸潗鏂�", @@ -543,10 +572,42 @@ } }, created() { + this.getProductCategoryList() + this.getProductList() this.setTableForm() this.setBottonView() }, methods: { + // 鑾峰彇浜у搧绫诲埆 + async getProductCategoryList() { + await getProductCategoryList({ + keyWord: "", + page: 0, + pageSize: 0 + }).then((res) => { + if (res.code === 200) { + this.productCategoryOptions = res.data + } + }) + }, + // 鑾峰彇鍙�変骇鍝� + async getProductList() { + await getProductList({ + keyWord: "", + page: 1, + pageSize: 20 + }).then((res) => { + if (res.code === 200) { + const list = res.data.map((item) => { + return { + id: item.id, + name: item.name + } + }) + this.selectProductOptions = list || [] + } + }) + }, // 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず setBottonView() { if (this.editConfig.title === "鏂板缓") { @@ -572,7 +633,24 @@ this.setTableForm() }, // 淇濆瓨 - saveClick() {}, + saveClick(formName) { + console.log(this.editConfig.infomation) + this.$refs[formName].validate((valid) => { + if (valid) { + let requestUrl = this.editConfig.title === "鏂板缓" ? addProduct : updateProduct + requestUrl({ + ...this.editConfig.infomation + }).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("娣诲姞鎴愬姛") + this.$parent.getData() + } + }) + } + }) + }, // 鍒犻櫎 delClick() {}, setTableForm() { @@ -679,12 +757,16 @@ }, // 杩涘嚭鐐瑰嚮 inOutBoundClick() { - this.$router.push({ path: "/reportForm/inOutboundDetail", query: { name: "浜у搧鍚嶇О/鍑哄叆搴撴槑缁�" } }) + if (this.editConfig.title !== "鏂板缓") { + this.$router.push({ path: "/reportForm/inOutboundDetail", query: { name: "浜у搧鍚嶇О/鍑哄叆搴撴槑缁�" } }) + } }, // 鍙攢鍞�/鍙噰璐� checkboxChange(val, param) { if (val === "閲囪喘") { this.showProcure = param + } else if (val === "閿�鍞�") { + this.showSale = param } } } @@ -775,9 +857,13 @@ .right { width: 50%; } + .all { + width: 100%; + } } .second-label { margin-left: 20px; + margin-right: 20px; border-bottom: 1px solid #d9d9d9; margin-bottom: 10px; } @@ -827,5 +913,8 @@ line-height: 30px; font-size: 13px; } + .el-input__inner { + text-align: left; + } } </style> diff --git a/src/views/productManage/product/index.vue b/src/views/productManage/product/index.vue index 08c4dcc..6eb0622 100644 --- a/src/views/productManage/product/index.vue +++ b/src/views/productManage/product/index.vue @@ -35,15 +35,16 @@ </div> <div class="right"> <div class="label"> - <span>鍗楁柟涓濆发SOUTHSILK 19濮嗙背鐪熶笣鐫¤。濂� 100%妗戣殨涓� 闀跨増濂楄瀹� </span> + <span>{{ item.name }}</span> </div> <div class="price"> <span>浠锋牸:锟�</span> - <span>{{ item.name }}</span> + <span>{{ item.salePrice }}</span> </div> <div class="library"> <span>鍦ㄥ簱锛�</span> - <span>{{ item.name }}</span> + <span>{{ item.amount }}</span> + <span style="margin-left: 5px">{{ item.unit }}</span> </div> </div> </div> @@ -62,7 +63,7 @@ </div> --> </div> <div class="btn-pager"> - <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> + <PagerView class="page" :pager-options="pagerOptions" :page-size="pageSizes" v-on="pagerEvents" /> </div> </div> <!-- 鏂板缓/缂栬緫 --> @@ -98,7 +99,8 @@ infomation: {} }, isIconIndex: "1", // 1 鍥炬爣 2 鍒楄〃 - url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" + url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", + pageSizes: [15, 30] } }, created() { @@ -107,6 +109,10 @@ }, methods: { setTable() { + if (this.isIconIndex === "1") { + this.pageSizes = [30, 60] + this.pagerOptions.pageSize = 30 + } this.tableList = { tableInfomation: [], selectBox: true, @@ -127,75 +133,74 @@ let tableColumn = [ { label: "浜у搧鍚嶇О", - prop: "id", + prop: "name", isShowColumn: true, default: true }, { label: "鍐呴儴鍙傝��", - prop: "deviceName", + prop: "internalReference", isShowColumn: showcol.includes("鍐呴儴鍙傝��"), default: false }, { label: "璐熻矗浜�", - prop: "id", + prop: "principal", isShowColumn: true, default: true }, { label: "浜у搧鏍囩", - prop: "deviceId", + prop: "productTagName", isShowColumn: showcol.includes("浜у搧鏍囩"), default: false }, { label: "鏉$爜", - prop: "shopName", + prop: "barcode", isShowColumn: showcol.includes("鏉$爜"), default: false }, { label: "閿�鍞环鏍�", - prop: "faultLevel", + prop: "salePrice", isShowColumn: showcol.includes("閿�鍞环鏍�"), default: false }, { label: "鎴愭湰", - prop: "status", + prop: "cost", isShowColumn: showcol.includes("鎴愭湰"), - default: false, - status: true + default: false }, { label: "浜у搧绫诲埆", - prop: "faultTime", + prop: "categoryName", isShowColumn: showcol.includes("浜у搧绫诲埆"), default: false }, { label: "浜у搧绫诲瀷", - prop: "shopName", + prop: "productType", isShowColumn: showcol.includes("浜у搧绫诲瀷"), default: false }, { label: "鍦ㄥ簱鏁伴噺", - prop: "faultLevel", + prop: "amount", isShowColumn: showcol.includes("鍦ㄥ簱鏁伴噺"), default: false }, - { - label: "棰勬祴鏁伴噺", - prop: "status", - isShowColumn: showcol.includes("棰勬祴鏁伴噺"), - default: false, - status: true - }, + // { + // label: "棰勬祴鏁伴噺", + // prop: "status", + // isShowColumn: showcol.includes("棰勬祴鏁伴噺"), + // default: false, + // status: true + // }, { label: "璁¢噺鍗曚綅", - prop: "faultTime", + prop: "unit", isShowColumn: showcol.includes("璁¢噺鍗曚綅"), default: false } @@ -207,33 +212,34 @@ this.tableList.tableColumn = this.setTableColumn(val) }, // 璇锋眰鏁版嵁 - async getData(val, content) { + async getData(val) { await getProductList({ - [val]: content, + keyWord: val, page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }).then((res) => { - if (res.data.code === 200) { - const list = res.data.data.list.map((item) => { + if (res.code === 200) { + const list = res.data.map((item) => { return { - ...item, - supplierNumber: item.supplier.number + ...item } }) this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.data.data.total + this.pagerOptions.totalCount = res.total } }) }, // 鎼滅储 searchClick(val) { console.log(val) - this.getData() + this.pagerOptions.currPage = 1 + this.getData(val) }, // 鏂板缓 addBtnClick() { this.editConfig.visible = true this.editConfig.title = "鏂板缓" + this.editConfig.infomation = {} }, // 琛岀偣鍑� tableRowClick(row) { @@ -244,7 +250,16 @@ }, // 鍒囨崲鍒楄〃灞曠幇褰㈠紡 selIconSwitchClick(value) { + this.pagerOptions.currPage = 1 this.isIconIndex = value + if (value === "1") { + this.pageSizes = [30, 60] + this.pagerOptions.pageSize = 30 + } else { + this.pageSizes = [15, 30] + this.pagerOptions.pageSize = 15 + } + this.getData() } } } @@ -288,8 +303,8 @@ justify-content: flex-start; align-content: flex-start; .product-box { - width: 295px; - height: 84px; + width: 294px; + height: 94px; margin-bottom: 10px; margin-right: 20px; border: 1px solid #dee2e6; @@ -298,6 +313,7 @@ -webkit-box-shadow: inset 0 0 2px #dee2e6; padding: 8px; display: flex; + align-items: center; .left { width: 60px; text-align: center; @@ -308,6 +324,7 @@ margin-left: 10px; .label { color: #212529; + margin-top: -10px; margin-right: 15px; word-break: break-all; word-wrap: break-word; @@ -315,7 +332,7 @@ .price, .library { color: #495057; - margin-top: 3px; + margin-top: 15px; } } } -- Gitblit v1.8.0