|
@@ -0,0 +1,757 @@
|
|
|
+<template>
|
|
|
+ <el-dialog
|
|
|
+ v-loading="loading || detailLoading"
|
|
|
+ :title="title"
|
|
|
+ :center="true"
|
|
|
+ align="left"
|
|
|
+ top="10vh"
|
|
|
+ width="1040px"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :visible.sync="showModelThis"
|
|
|
+ element-loading-text="拼命加载中"
|
|
|
+ element-loading-spinner="el-icon-loading"
|
|
|
+ element-loading-background="rgba(0, 0, 0, 0.8)"
|
|
|
+ @close="handleClose"
|
|
|
+ >
|
|
|
+ <el-card style="margin: -20px 0 0 0">
|
|
|
+ <el-row :gutter="10">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form
|
|
|
+ ref="ruleForm"
|
|
|
+ :model="ruleForm"
|
|
|
+ status-icon
|
|
|
+ :rules="rulesThis"
|
|
|
+ label-width="80px"
|
|
|
+ class="demo-ruleForm"
|
|
|
+ size="mini"
|
|
|
+ >
|
|
|
+ <el-divider>
|
|
|
+ <el-tag size="mini">确认单信息</el-tag>
|
|
|
+ </el-divider>
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="采购员" prop="buyerid">
|
|
|
+ <el-select
|
|
|
+ v-model="ruleForm.buyerid"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ placeholder="采购员"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in accounts"
|
|
|
+ :key="`group_user` + item.id"
|
|
|
+ :label="item.nickname"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ <span style="float: left">{{ item.nickname }}</span>
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ float: right;
|
|
|
+ color: #8492a6;
|
|
|
+ font-size: 13px;
|
|
|
+ padding: 0 25px 0 0;
|
|
|
+ "
|
|
|
+ >{{ item.role_name }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="采购毛利率" label-width="110px" prop="cgd_tax">
|
|
|
+ <el-input-number
|
|
|
+ v-model="ruleForm.cgd_tax"
|
|
|
+ style="width: 100%"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ controls-position="right"
|
|
|
+ placeholder="采购毛利率"
|
|
|
+ :precision="2"
|
|
|
+ :min="0"
|
|
|
+ :max="100"
|
|
|
+ :step="0.01"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="支付渠道" prop="pay_id">
|
|
|
+ <search-pay
|
|
|
+ :value="ruleForm.pay_id"
|
|
|
+ :disabled="id !== '003'"
|
|
|
+ :size="'mini'"
|
|
|
+ :is-detail="type !== 'add'"
|
|
|
+ :is_show="'0'"
|
|
|
+ :names="pay_name"
|
|
|
+ :placeholder="'支付渠道'"
|
|
|
+ @searchChange="pay_id_change"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="单据号" prop="workCode">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.workCode"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ maxlength="50"
|
|
|
+ placeholder="单据号"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="PO编号" prop="poCode">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.poCode"
|
|
|
+ placeholder="PO编号"
|
|
|
+ maxlength="50"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="购买方公司" label-width="110px" prop="khNo">
|
|
|
+ <search-customer
|
|
|
+ size="mini"
|
|
|
+ :names="khName"
|
|
|
+ :disabled="id !== '003'"
|
|
|
+ :is-detail="type !== 'add'"
|
|
|
+ :value="ruleForm.khNo"
|
|
|
+ placeholder="购买方公司"
|
|
|
+ @searchChange="handleCustomerChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="销售方公司" label-width="110px" prop="companyNo">
|
|
|
+ <search-work-company
|
|
|
+ :disabled="id !== '003'"
|
|
|
+ :value="ruleForm.companyNo"
|
|
|
+ :names="''"
|
|
|
+ :size="'mini'"
|
|
|
+ :placeholder="'销售方公司'"
|
|
|
+ @searchChange="handleCompanyChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider>
|
|
|
+ <el-tag size="mini">收货信息</el-tag>
|
|
|
+ </el-divider>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="收货人" prop="contactor">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.contactor"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ placeholder="收货人"
|
|
|
+ maxlength="30"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="联系电话" prop="mobile">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.mobile"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ placeholder="联系电话"
|
|
|
+ maxlength="11"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="收货省市区" prop="addr_code" label-width="100px">
|
|
|
+ <select-area
|
|
|
+ size="mini"
|
|
|
+ :value="ruleForm.addr_code"
|
|
|
+ placeholder="收货省市区"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ @selectChange="select_area_change($event)"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="联系地址" prop="addr">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.addr"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ maxlength="100"
|
|
|
+ placeholder="联系地址"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="发货时间" prop="sendtime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="ruleForm.sendtime"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="发货时间"
|
|
|
+ style="width: 100%"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider>
|
|
|
+ <el-tag size="mini">商品信息</el-tag>
|
|
|
+ </el-divider>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="供应商公司" label-width="110px" prop="supplierNo">
|
|
|
+ <search-supplier
|
|
|
+ size="mini"
|
|
|
+ placeholder="供应商公司"
|
|
|
+ :value="ruleForm.supplierNo"
|
|
|
+ :names="supplierName"
|
|
|
+ :disabled="id === '007'"
|
|
|
+ :is-detail="type !== 'add'"
|
|
|
+ @searchChange="handleSupplierChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="商品分类" prop="cat_id">
|
|
|
+ <search-sort
|
|
|
+ :value="ruleForm.cat_id"
|
|
|
+ :placeholder="'商品分类'"
|
|
|
+ :disabled="id !== '003'"
|
|
|
+ :size="'mini'"
|
|
|
+ :names="cat_id_name"
|
|
|
+ :is-detail="type !== 'add'"
|
|
|
+ @searchChange="goods_class_change"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="商品名称" prop="goodName">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.goodName"
|
|
|
+ placeholder="商品名称"
|
|
|
+ maxlength="50"
|
|
|
+ :disabled="id !== '003'"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="数量" prop="goodNum">
|
|
|
+ <el-input-number
|
|
|
+ v-model="ruleForm.goodNum"
|
|
|
+ :disabled="id !== '003'"
|
|
|
+ style="width: 100%"
|
|
|
+ controls-position="right"
|
|
|
+ placeholder="数量"
|
|
|
+ :precision="0"
|
|
|
+ :min="0"
|
|
|
+ :step="1"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="单位" prop="goodUnit" label-width="60px">
|
|
|
+ <search-unit
|
|
|
+ :value="ruleForm.goodUnit"
|
|
|
+ :disabled="type === 'view' || type === 'editCoin'"
|
|
|
+ :size="'mini'"
|
|
|
+ :is-detail="type !== 'add'"
|
|
|
+ :names="unit_name"
|
|
|
+ :placeholder="'单位'"
|
|
|
+ @searchChange="unitsearchChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="单价" prop="goodPrice">
|
|
|
+ <el-input-number
|
|
|
+ v-model="ruleForm.goodPrice"
|
|
|
+ :disabled="id !== '003'"
|
|
|
+ style="width: 100%"
|
|
|
+ controls-position="right"
|
|
|
+ placeholder="单价"
|
|
|
+ :precision="2"
|
|
|
+ :min="0"
|
|
|
+ :step="0.01"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="贷款总额" prop="good_total">
|
|
|
+ <el-input v-model="ruleForm.good_total" placeholder="贷款总额" disabled>
|
|
|
+ <template #append>元</template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="税率" prop="tax">
|
|
|
+ <search-tax
|
|
|
+ :disabled="id === '007'"
|
|
|
+ :value="ruleForm.tax"
|
|
|
+ :size="'mini'"
|
|
|
+ :is-detail="type !== 'add'"
|
|
|
+ :placeholder="'税点'"
|
|
|
+ @searchChange="handleTaxChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" style="text-align: right">
|
|
|
+ <el-button
|
|
|
+ v-if="id !== '007'"
|
|
|
+ type="primary"
|
|
|
+ @click="submitForm"
|
|
|
+ >保 存</el-button>
|
|
|
+ <el-button @click="showModelThis = false">
|
|
|
+ {{ id == "007" ? "关 闭" : "取 消" }}
|
|
|
+ </el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-card>
|
|
|
+ </el-dialog>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import asyncRequest from '@/apis/service/netOrderEntry/netOrderEnter'
|
|
|
+import { accMul, isPhone, isMobile } from '@/utils/validate'
|
|
|
+import resToken from '@/mixins/resToken'
|
|
|
+
|
|
|
+const defaultData = {
|
|
|
+ addr_code: [],
|
|
|
+ buyerid: '',
|
|
|
+ pay_id: '',
|
|
|
+ cgd_tax: '',
|
|
|
+ workCode: '',
|
|
|
+ poCode: '',
|
|
|
+ khNo: '',
|
|
|
+ companyNo: '',
|
|
|
+ contactor: '',
|
|
|
+ mobile: '',
|
|
|
+ addr: '',
|
|
|
+ sendtime: '',
|
|
|
+ supplierNo: '',
|
|
|
+ cat_id: '',
|
|
|
+ goodName: '',
|
|
|
+ goodNum: '',
|
|
|
+ goodPrice: '',
|
|
|
+ good_total: '',
|
|
|
+ goodUnit: '',
|
|
|
+ tax: ''
|
|
|
+}
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'Terrace',
|
|
|
+ mixins: [resToken],
|
|
|
+ props: ['showModel', 'id', 'sitem'],
|
|
|
+ data() {
|
|
|
+ const validatemobile = (rule, value, callback) => {
|
|
|
+ if (value !== '') {
|
|
|
+ if (isPhone(value) || isMobile(value)) {
|
|
|
+ callback()
|
|
|
+ } else {
|
|
|
+ callback(new Error('联系电话格式不正确!'))
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ callback(new Error('请输入联系电话!'))
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ loading: false,
|
|
|
+ detailLoading: false,
|
|
|
+ title: '添加确认单信息',
|
|
|
+ khName: '',
|
|
|
+ accounts: [],
|
|
|
+ cat_id_name: '',
|
|
|
+ showModelThis: this.showModel,
|
|
|
+ pickerOptions: {
|
|
|
+ disabledDate: (time) => time.getTime() > new Date()
|
|
|
+ },
|
|
|
+ names: [],
|
|
|
+ unit_name: '',
|
|
|
+ companyName: '',
|
|
|
+ ruleForm: { ...defaultData },
|
|
|
+ rulesThis: this.rules,
|
|
|
+ rules: {
|
|
|
+ goodUnit: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择单位',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ addr_code: [
|
|
|
+ {
|
|
|
+ type: 'array',
|
|
|
+ required: true,
|
|
|
+ message: '请选择收货省市区',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ pay_id: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入销售员',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ buyerid: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择采购员',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ cgd_tax: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入采购毛利率',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ cat_id: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择商品分类',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ supplierNo: [
|
|
|
+ {
|
|
|
+ type: 'array',
|
|
|
+ required: true,
|
|
|
+ message: '请选择供应商公司',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ qrdType: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入订单类型',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ good_total: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入货款总金额',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // workCode: [
|
|
|
+ // {
|
|
|
+ // required: true,
|
|
|
+ // message: '请输入单据号',
|
|
|
+ // trigger: 'blur'
|
|
|
+ // }
|
|
|
+ // ],
|
|
|
+ poCode: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入PO编号',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ khNo: [
|
|
|
+ {
|
|
|
+ type: 'array',
|
|
|
+ required: true,
|
|
|
+ message: '请选择购买方公司',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ tax: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择税率',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ companyNo: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择销售方公司',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ contactor: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入收货人',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ mobile: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ validator: validatemobile,
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ addr: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入联系地址',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+
|
|
|
+ sendtime: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入发货时间',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+
|
|
|
+ goodName: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入商品名称',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ goodPrice: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入单价',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ goodNum: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入数量',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ totalWatchSource() {
|
|
|
+ const { goodNum, goodPrice } = this.ruleForm
|
|
|
+ return { goodNum, goodPrice }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ showModel: function(val) {
|
|
|
+ this.showModelThis = val
|
|
|
+ if (val) {
|
|
|
+ this.initForm()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showModelThis(val) {
|
|
|
+ if (!val) {
|
|
|
+ this.$emit('cancel')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ totalWatchSource: {
|
|
|
+ handler({ goodPrice, goodNum }) {
|
|
|
+ if (goodPrice === 0 || goodNum === 0) {
|
|
|
+ this.ruleForm.good_total = 0
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ this.ruleForm.good_total = accMul(goodPrice, goodNum)
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ async select_area_change(e) {
|
|
|
+ this.ruleForm.addr_code = e
|
|
|
+ this.$refs.ruleForm.validateField('addr_code')
|
|
|
+ },
|
|
|
+ handleClose() {
|
|
|
+ this.showModelThis = false
|
|
|
+ this.companyName = ''
|
|
|
+ this.khName = ''
|
|
|
+ this.supplierName = ''
|
|
|
+ this.ruleForm = { ...defaultData }
|
|
|
+ },
|
|
|
+ async initForm() {
|
|
|
+ this.loading = true
|
|
|
+ await this.getAccounts()
|
|
|
+
|
|
|
+ if (this.id === '003') {
|
|
|
+ this.title = '添加确认单信息'
|
|
|
+ this.rulesThis = this.rules
|
|
|
+ } else if (this.id === '005') {
|
|
|
+ this.title = '修改确认单信息'
|
|
|
+ this.rulesThis = this.rules
|
|
|
+ } else {
|
|
|
+ this.title = '确认单信息详情'
|
|
|
+ this.rulesThis = {}
|
|
|
+ }
|
|
|
+ await this.resetForm()
|
|
|
+ this.loading = false
|
|
|
+ },
|
|
|
+
|
|
|
+ handleCompanyChange(e) {
|
|
|
+ this.ruleForm.companyNo = e.code || ''
|
|
|
+ this.$refs.ruleForm.validateField('companyNo')
|
|
|
+ },
|
|
|
+ handleCustomerChange(e) {
|
|
|
+ this.ruleForm.khNo = e.code ? [e.code] : ''
|
|
|
+ this.$refs.ruleForm.validateField('khNo')
|
|
|
+ },
|
|
|
+ handleSupplierChange(e) {
|
|
|
+ this.ruleForm.supplierNo = e.code ? [e.code] : ''
|
|
|
+ this.$refs.ruleForm.validateField('supplierNo')
|
|
|
+ },
|
|
|
+ handleGoodClassChange(e) {
|
|
|
+ this.ruleForm.cat_id = e
|
|
|
+ this.$refs.ruleForm.validateField('cat_id')
|
|
|
+ },
|
|
|
+ handleTaxChange(e) {
|
|
|
+ this.ruleForm.tax = e
|
|
|
+ this.$refs.ruleForm.validateField('tax')
|
|
|
+ },
|
|
|
+ unitsearchChange(e) {
|
|
|
+ console.log(e)
|
|
|
+ const { id, code, label } = e
|
|
|
+ this.ruleForm.goodUnit = code ? [code] : []
|
|
|
+ this.$refs.ruleForm.validateField('goodUnit')
|
|
|
+ },
|
|
|
+ async resetForm() {
|
|
|
+ // 重置
|
|
|
+ await this.$nextTick(() => {
|
|
|
+ if (this.$refs.ruleForm) {
|
|
|
+ this.$refs.ruleForm.resetFields()
|
|
|
+ this.$refs.ruleForm.clearValidate()
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ if (this.id !== '003') this.getDetail()
|
|
|
+ },
|
|
|
+ async getDetail() {
|
|
|
+ this.detailLoading = true
|
|
|
+ const { orderCode } = this.sitem
|
|
|
+ const { data } = await asyncRequest.detail({ orderCode })
|
|
|
+
|
|
|
+ const {
|
|
|
+ cat_id,
|
|
|
+ khNo,
|
|
|
+ supplierNo,
|
|
|
+ supplierNanme,
|
|
|
+ khName,
|
|
|
+ goodUnit,
|
|
|
+ tax,
|
|
|
+ addr_code,
|
|
|
+ unitName,
|
|
|
+ ...rest
|
|
|
+ } = data
|
|
|
+
|
|
|
+ this.ruleForm = {
|
|
|
+ ...rest,
|
|
|
+ addr_code: addr_code ? addr_code.split(',') : [],
|
|
|
+ cat_id: cat_id ? [cat_id[cat_id.length - 1]] : [],
|
|
|
+ supplierNo: supplierNo ? [supplierNo] : [],
|
|
|
+ khNo: khNo ? [khNo] : [],
|
|
|
+ tax: tax ? tax + '%' : '',
|
|
|
+ goodUnit: goodUnit ? [goodUnit] : ''
|
|
|
+ }
|
|
|
+
|
|
|
+ this.cat_id_name = cat_id.map(({ name }) => name).join('_')
|
|
|
+ this.unit_name = unitName
|
|
|
+ console.log(this.unit_name)
|
|
|
+
|
|
|
+ this.khName = khName
|
|
|
+ this.supplierName = supplierNanme
|
|
|
+ this.detailLoading = false
|
|
|
+ },
|
|
|
+ pay_id_change(e) {
|
|
|
+ const { id, label, pay_name } = e
|
|
|
+ this.ruleForm.pay_id = id || ''
|
|
|
+ this.pay_name = pay_name || ''
|
|
|
+ this.$refs.ruleForm.validateField('pay_id')
|
|
|
+ },
|
|
|
+ async getAccounts() {
|
|
|
+ const res = await asyncRequest.accountall(this.dataForm)
|
|
|
+ if (res && res.code === 0 && res.data) {
|
|
|
+ this.accounts = res.data
|
|
|
+ } else if (res && res.code >= 100 && res.code <= 104) {
|
|
|
+ await this.logout()
|
|
|
+ } else {
|
|
|
+ this.$message.warning(res.message)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async goods_class_change(e) {
|
|
|
+ const { id } = e
|
|
|
+ this.ruleForm.cat_id = id ? [id] : []
|
|
|
+ this.$refs.ruleForm.validateField('cat_id')
|
|
|
+ },
|
|
|
+ async submitForm() {
|
|
|
+ await this.$refs.ruleForm.validate(async(valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (this.loading) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ this.loading = true
|
|
|
+ const model = JSON.parse(JSON.stringify(this.ruleForm))
|
|
|
+ model.supplierNo = model.supplierNo[0]
|
|
|
+ model.khNo = model.khNo[0]
|
|
|
+ const user = this.accounts.find(({ id }) => id === model.buyerid)
|
|
|
+ model.buyer_name = user ? user.nickname : ''
|
|
|
+ model.cat_id = model.cat_id ? model.cat_id[model.cat_id.length - 1] : ''
|
|
|
+ model.addr_code = model.addr_code.join(',')
|
|
|
+ model.tax = model.tax.split('%')[0]
|
|
|
+ model.pay_name = this.pay_name
|
|
|
+ model.goodUnit = Array.isArray(model.goodUnit) ? model.goodUnit[0] : model.goodUnit
|
|
|
+
|
|
|
+ let res = {}
|
|
|
+ if (this.id === '003') {
|
|
|
+ delete model['id']
|
|
|
+ res = await asyncRequest.add(model)
|
|
|
+ } else {
|
|
|
+ res = await asyncRequest.update(model)
|
|
|
+ }
|
|
|
+ this.loading = false
|
|
|
+ if (res && res.code === 0) {
|
|
|
+ const title = this.id === '003' ? '添加成功!' : '修改成功!'
|
|
|
+ this.$notify.success({
|
|
|
+ title,
|
|
|
+ message: ''
|
|
|
+ })
|
|
|
+ this.showModelThis = false
|
|
|
+ // 刷新
|
|
|
+ this.$emit('refresh')
|
|
|
+ } else if (res && res.code >= 100 && res.code <= 104) {
|
|
|
+ await this.logout()
|
|
|
+ } else {
|
|
|
+ this.$message.warning(res.message)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log('error submit!!')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.terrace {
|
|
|
+}
|
|
|
+</style>
|