From 8d0ee0a2c32c7a99afc01b0a0c795d708a9b7955 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期四, 21 九月 2023 09:46:39 +0800 Subject: [PATCH] 概述和产品相关接口联调待完善 --- src/views/overview/AddOverviewDialog.vue | 171 +++++--- src/views/overview/OverviewListView.vue | 23 /dev/null | 104 ----- src/views/productManage/product/index.vue | 62 +- src/router/product/index.js | 2 src/views/overview/index.vue | 79 +-- src/api/common/other.js | 6 src/components/makepager/FormBtnsView.vue | 23 + src/api/product/product.js | 33 src/router/index.js | 4 src/api/overview/overview.js | 64 +++ src/views/productManage/product/AddProductDialog.vue | 560 ++++++++++++++++------------ 12 files changed, 609 insertions(+), 522 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..90d7bf6 --- /dev/null +++ b/src/api/overview/overview.js @@ -0,0 +1,64 @@ +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 + }) +} 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/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/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..1f8f11f 100644 --- a/src/views/overview/AddOverviewDialog.vue +++ b/src/views/overview/AddOverviewDialog.vue @@ -39,12 +39,32 @@ <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.company" placeholder="璇烽�夋嫨" size="mini" - style="width: 63%" + style="width: 90%" + :disabled="!showFooter" + > + <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 +73,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 fromLocationOptions" :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,30 +146,30 @@ </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" > <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> @@ -184,9 +181,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 +213,7 @@ </CommonFormTableView> </div> <!-- 璇︽儏 --> - <div v-if="activeName === 'detail'"> + <!-- <div v-if="activeName === 'detail'"> <CommonFormTableView :product-table-list="detailTableList" :detail-enter="!showFooter" @@ -233,7 +230,7 @@ </el-table-column> </template> </CommonFormTableView> - </div> + </div> --> </div> </div> </el-form> @@ -249,6 +246,8 @@ <script> import CommonFormTableView from "@/components/makepager/CommonFormTableView" +// import { addOperation } from "@/api/overview/overview" +import { getCompanyList } from "@/api/common/other" export default { name: "AddOverviewDialog", props: { @@ -263,8 +262,8 @@ } }, workType: { - type: String, - default: "鏀惰揣" + type: Number, + default: 1 }, addName: { type: String, @@ -284,8 +283,10 @@ memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }], sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }] }, + companyOptions: [], // 鍏徃 memberOptions: [], - paymentTypeListOptions: [], + fromLocationOptions: [], // 婧愪綅缃� + toLocationOptions: [], // 浠撳簱浣嶇疆 list: [ { label: "鑽夌", status: "todo" }, { label: "姝e湪绛夊緟", status: "todo" }, @@ -306,16 +307,29 @@ detailTableData: [{ name: "ssss" }], detailId: 0, isNoDetail: false, // 娣诲姞璇︽儏鏄庣粏琛屾椂鏄惁鏈�夋嫨 - tableColumn: [] + tableColumn: [], + receiptType: this.addName, // 鍏ュ簱绫诲瀷 + companyObj: {}, + contacterObj: {} } }, created() { this.setTableForm() this.setBottonView() this.setDetailTableForm() - this.activeName = this.workType === "鏀惰揣" ? "first" : "detail" + this.activeName = this.workType === 1 ? "first" : "detail" + this.getCompanyList() }, methods: { + // 鑾峰彇鍏徃鍒楄〃 + async getCompanyList() { + await getCompanyList().then((res) => { + console.log(res) + if (res.data.code === 200) { + this.companyOptions = res.data.data + } + }) + }, // 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず setBottonView() { if (this.editConfig.title === "鏂板缓") { @@ -360,7 +374,36 @@ this.setTableForm() }, // 淇濆瓨 - saveClick() {}, + saveClick() { + this.saveParams() + }, + saveParams() { + let data = this.editConfig.infomation + console.log(this.companyObj) + let params = { + companyID: data.company.value || 0, + companyName: data.company.label || "", + contacterID: 0, + contacterName: "string", + details: [ + { + finishQuantity: 0, + productId: 0, + productName: "string", + quantity: 0 + } + ], + fromLocationId: data.fromLocationId || 0, + id: 0, + number: "", + operationDate: data.operationDate || "", + operationTypeId: data.operationTypeId, + sourceNumber: data.sourceNumber || "", + status: 3, + toLocationId: data.toLocationId || 0 + } + return params + }, // 鍒犻櫎 delClick() {}, // 鎿嶄綔鍒楄〃 @@ -369,9 +412,9 @@ 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: "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 } ] diff --git a/src/views/overview/OverviewListView.vue b/src/views/overview/OverviewListView.vue index 1f628c3..54e79fe 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() { @@ -175,23 +176,21 @@ 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" + ...item } }) this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.data.data.total + this.pagerOptions.totalCount = res.data.total } }) }, 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..206aa69 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"> + <el-col :span="23"> <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-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>鍙偍瀛樼殑浜у搧鏄偍绠$悊搴撳瓨姘村钩鐨勫疄鐗╅」鐩��</div> + <div>鎮ㄥ彲浠ュ湪鍙戣揣鍓嶄负鍏跺紑鍏风粨绠楀崟銆�</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,193 @@ </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%" + ></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%" + ></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="2" + :controls="false" + style="width: 85%" + ></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="2" + :controls="false" + style="width: 85%" + ></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 +403,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 +460,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 +475,9 @@ </template> <script> -import CommonFormTableView from "@/components/makepager/CommonFormTableView" +// import CommonFormTableView from "@/components/makepager/CommonFormTableView" +import { getProductCategoryList } from "@/api/product/productCategory" +import { getProductList, addProduct } from "@/api/product/product" let inputElement = null export default { @@ -478,7 +494,7 @@ } } }, - components: { CommonFormTableView }, + components: {}, computed: {}, data() { return { @@ -491,14 +507,23 @@ memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }], sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }] }, - 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 +535,11 @@ imageSrc: "", // 鍥剧墖鍦板潃 marketable: true, // 鍙攢鍞� procurable: true, // 鍙噰璐� - checkedCities: ["涓婃捣", "鍖椾含"], - cities: ["涓婃捣瀵瑰瀵瑰瀵瑰澶氬澶氬澶氬澶氬寳浜瀵瑰瀵瑰瀵�", "鍖椾含瀵瑰瀵瑰瀵瑰澶�", "骞垮窞", "娣卞湷"], + checkedRoute: [], + route: ["鍒堕��", "娌虫睜鐢熶骇鍒堕�犱粨"], addProduct: false, showProcure: true, + showSale: true, materialTypeList: [ { name: "鍘熸潗鏂�", @@ -543,10 +569,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 +630,19 @@ this.setTableForm() }, // 淇濆瓨 - saveClick() {}, + async saveClick() { + console.log(this.editConfig.infomation) + await addProduct({ + ...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 +749,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 +849,13 @@ .right { width: 50%; } + .all { + width: 100%; + } } .second-label { margin-left: 20px; + margin-right: 20px; border-bottom: 1px solid #d9d9d9; margin-bottom: 10px; } diff --git a/src/views/productManage/product/index.vue b/src/views/productManage/product/index.vue index 08c4dcc..d5e8709 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> @@ -127,75 +128,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,28 +207,28 @@ 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() { -- Gitblit v1.8.0