| | |
| | | // 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 |
| | | }) |
| | | } |
New file |
| | |
| | | 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 |
| | | }) |
| | | } |
| | |
| | | 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 |
| | | }) |
| | | } |
| | |
| | | <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"> |
| | |
| | | <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"> |
| | |
| | | showProcure: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | showSale: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | (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 |
| | | } |
| | | }) |
| | |
| | | name: "product", |
| | | component: product, |
| | | meta: { |
| | | title: "产品管理" |
| | | title: "产品" |
| | | } |
| | | }, |
| | | { |
| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | </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"> |
| | |
| | | </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%" |
| | |
| | | </CommonFormTableView> |
| | | </div> |
| | | <!-- 详情 --> |
| | | <div v-if="activeName === 'detail'"> |
| | | <!-- <div v-if="activeName === 'detail'"> |
| | | <CommonFormTableView |
| | | :product-table-list="detailTableList" |
| | | :detail-enter="!showFooter" |
| | |
| | | </el-table-column> |
| | | </template> |
| | | </CommonFormTableView> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | |
| | | |
| | | <script> |
| | | import CommonFormTableView from "@/components/makepager/CommonFormTableView" |
| | | // import { addOperation } from "@/api/overview/overview" |
| | | import { getCompanyList } from "@/api/common/other" |
| | | export default { |
| | | name: "AddOverviewDialog", |
| | | props: { |
| | |
| | | } |
| | | }, |
| | | workType: { |
| | | type: String, |
| | | default: "收货" |
| | | type: Number, |
| | | default: 1 |
| | | }, |
| | | addName: { |
| | | type: String, |
| | |
| | | memberId: [{ required: true, message: "请选择销售负责人", trigger: "change" }], |
| | | sale_return_nunber: [{ required: true, message: "请选择销售退货单", trigger: "change" }] |
| | | }, |
| | | companyOptions: [], // 公司 |
| | | memberOptions: [], |
| | | paymentTypeListOptions: [], |
| | | fromLocationOptions: [], // 源位置 |
| | | toLocationOptions: [], // 仓库位置 |
| | | list: [ |
| | | { label: "草稿", status: "todo" }, |
| | | { label: "正在等待", status: "todo" }, |
| | |
| | | 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 === "新建") { |
| | |
| | | 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() {}, |
| | | // 操作列表 |
| | |
| | | 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 } |
| | | ] |
| | |
| | | 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" |
| | | |
| | |
| | | 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() { |
| | |
| | | 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 |
| | | } |
| | | }) |
| | | }, |
| | |
| | | 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"> |
| | |
| | | |
| | | <script> |
| | | import pageMixin from "@/components/makepager/pager/mixin/pageMixin" |
| | | import { getOperationType } from "@/api/overview/overview" |
| | | |
| | | export default { |
| | | name: "OverView", |
| | |
| | | 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: "新建", |
| | |
| | | } |
| | | } |
| | | }, |
| | | 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> |
| | |
| | | </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 |
| | | > |
| | |
| | | >可采购</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%" |
| | |
| | | </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%" |
| | |
| | | </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" |
| | |
| | | </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> |
| | |
| | | </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 { |
| | |
| | | } |
| | | } |
| | | }, |
| | | components: { CommonFormTableView }, |
| | | components: {}, |
| | | computed: {}, |
| | | data() { |
| | | return { |
| | |
| | | memberId: [{ required: true, message: "请选择销售负责人", trigger: "change" }], |
| | | sale_return_nunber: [{ required: true, message: "请选择销售退货单", trigger: "change" }] |
| | | }, |
| | | memberOptions: [], |
| | | paymentTypeListOptions: [], |
| | | numberList: [ |
| | | { label: "草稿", status: "todo" }, |
| | | { label: "正在等待", 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: {}, |
| | |
| | | imageSrc: "", // 图片地址 |
| | | marketable: true, // 可销售 |
| | | procurable: true, // 可采购 |
| | | checkedCities: ["上海", "北京"], |
| | | cities: ["上海对对对对对对多多多多多多多北京对对对对对对", "北京对对对对对对多", "广州", "深圳"], |
| | | checkedRoute: [], |
| | | route: ["制造", "河池生产制造仓"], |
| | | addProduct: false, |
| | | showProcure: true, |
| | | showSale: true, |
| | | materialTypeList: [ |
| | | { |
| | | name: "原材料", |
| | |
| | | } |
| | | }, |
| | | 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 === "新建") { |
| | |
| | | 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() { |
| | |
| | | }, |
| | | // 进出点击 |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | |
| | | .right { |
| | | width: 50%; |
| | | } |
| | | .all { |
| | | width: 100%; |
| | | } |
| | | } |
| | | .second-label { |
| | | margin-left: 20px; |
| | | margin-right: 20px; |
| | | border-bottom: 1px solid #d9d9d9; |
| | | margin-bottom: 10px; |
| | | } |
| | |
| | | </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> |
| | |
| | | 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 |
| | | } |
| | |
| | | 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() { |