Explorar o código

订单:技术确定

chris %!s(int64=2) %!d(string=hai) anos
pai
achega
bc3332da94

+ 1 - 1
src/views/modules/common/product-component.vue

@@ -51,7 +51,7 @@
       this.init()
     },
     watch: {
-      cusId (value) {
+      productId (value) {
         this.value = value
       }
     },

+ 0 - 1
src/views/modules/cus/contract-record-add-or-update.vue

@@ -154,7 +154,6 @@
 <script>
   import UploadComponent from '../common/upload-component'
   import TemplateChose from '../product/template-chose'
-  // import AddOrUpdateProduct from './contract-record-product-add-or-update'
   import AddOrUpdate from '../product/template-add-or-update'
   import { getReviewCodeList, geContractBookDetail, getCommunicationList } from '@/api/cus'
 

+ 40 - 34
src/views/modules/order/order-add-or-update.vue

@@ -35,25 +35,26 @@
           </el-col>
           <el-col :span="8" style="padding-left: 20px">
             <el-form-item label="合同号" prop="contractNumber">
-              <el-input v-model="dataForm.contractNumber" :disabled="display" placeholder="合同号"></el-input>
+              <el-input v-model="dataForm.contractNumber" :disabled="display || addType === 2" placeholder="合同号"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8" style="padding-left: 20px">
             <el-form-item label="客户名称" prop="customerId">
-              <cus-component v-model="dataForm.customerId" :cus-id="dataForm.customerId"></cus-component>
+              <el-input v-if="display || addType === 2" v-model="dataForm.customerName" disabled></el-input>
+              <cus-component v-else v-model="dataForm.customerId" :disabled="display || addType === 2" :cus-id="dataForm.customerId"></cus-component>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row class="my-row">
           <el-col :span="8">
             <el-form-item label="业务员" prop="salesmanId">
-              <el-input v-if="display" v-model="dataForm.salesmanName" disabled></el-input>
+              <el-input v-if="display || addType === 2" v-model="dataForm.salesmanName" disabled></el-input>
               <user-component v-else v-model="dataForm.salesmanId" :user-id="dataForm.salesmanId" @userSelected="salesmanChanged"></user-component>
             </el-form-item>
           </el-col>
           <el-col :span="8" style="padding-left: 20px">
             <el-form-item label="合同交期" prop="deliveryDate">
-              <el-input v-if="display" v-model="dataForm.deliveryDate" disabled></el-input>
+              <el-input v-if="display || addType === 2" v-model="dataForm.deliveryDate" disabled></el-input>
               <el-date-picker v-else
                 v-model="dataForm.deliveryDate"
                 value-format="yyyy-MM-dd"
@@ -63,7 +64,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="批次号" prop="batchNumber">
-              <el-input v-model="dataForm.batchNumber" placeholder="批次号"></el-input>
+              <el-input v-model="dataForm.batchNumber" placeholder="批次号" :disabled="display || addType === 2"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -72,7 +73,7 @@
 <!--        </el-row>-->
         <el-row class="my-row">
           <el-form-item label="备注说明" prop="notes">
-            <el-input type="textarea" v-model="dataForm.notes" :disabled="display" placeholder="备注说明"></el-input>
+            <el-input type="textarea" v-model="dataForm.notes" :disabled="display || addType === 2"  placeholder="备注说明" ></el-input>
           </el-form-item>
         </el-row>
         <el-row class="my-row">
@@ -107,31 +108,23 @@
               prop="cnt"
               header-align="center"
               align="center"
-              min-width="160"
+              min-width="100"
               label="数量">
-              <template slot-scope="scope">
-                <el-input-number v-model="scope.row.cnt" :disabled="display" :min="1" style="width: 140px;"/>
-              </template>
             </el-table-column>
             <el-table-column
               prop="productNumber"
               header-align="center"
               align="center"
-              min-width="125"
+              min-width="160"
+              :show-tooltip-when-overflow="true"
               label="订单编号">
-              <template slot-scope="scope">
-                <el-input v-model="scope.row.productNumber" :disabled="display" :min="1" style="width: 100px;"/>
-              </template>
             </el-table-column>
             <el-table-column
               prop="price"
               header-align="center"
               align="center"
-              min-width="160"
+              min-width="100"
               label="含税单价">
-              <template slot-scope="scope">
-                <el-input-number v-model="scope.row.price" :disabled="display" :precision="1" :step="0.1" :min="0" style="width: 140px;"/>
-              </template>
             </el-table-column>
             <el-table-column
               prop="amount"
@@ -147,12 +140,10 @@
               prop="rate"
               header-align="center"
               align="center"
-              min-width="130"
+              min-width="100"
               label="税率">
               <template slot-scope="scope">
-                <el-input type="number" v-model="scope.row.rate" :disabled="display">
-                  <template slot="append">%</template>
-                </el-input>
+                {{scope.row.rate}}%
               </template>
             </el-table-column>
             <el-table-column
@@ -175,9 +166,10 @@
               fixed="right"
               header-align="center"
               align="center"
-              width="80"
+              width="150"
               label="操作">
               <template slot-scope="scope">
+                <el-button type="text" size="small" @click="updateProductHandle(scope.row)">编辑</el-button>
                 <el-button style="color: red" type="text" size="small" @click="deleteProductHandle(scope.row.recordId)">删除</el-button>
               </template>
             </el-table-column>
@@ -219,6 +211,7 @@
         productListVisible: false,
         visible: false,
         display: false,
+        addType: 0,
         fileList: [],
         dataList: [],
         id: 0,
@@ -238,7 +231,11 @@
       onChose () {
         this.$emit('onChose')
       },
-      async init (id, display) {
+      // 初始化:addType 新增类型: 0新增,1修改 2技术确认 (目前只有2才会赋值)
+      async init (id, display, addType) {
+        if (addType) {
+          this.addType = addType
+        }
         this.fileList = []
         this.stepList = []
         this.logList = []
@@ -278,20 +275,15 @@
       uploadSuccess (fileList) {
         this.fileList = fileList
       },
-      // 添加订单产品明细
-      addProduct () {
-        this.productListVisible = true
-        this.$nextTick(() => {
-          this.$refs.productList.init(2)
-        })
-      },
       addItem (item) {
         if (!item.recordId) {
           item.recordId = Math.round(Math.random() * 1000000)
         }
-        this.productDetails.push({
-          ...item
-        })
+        if (this.productDetails.findIndex(item1 => item1.recordId === item.recordId) === -1) {
+          this.productDetails.push({
+            ...item
+          })
+        }
       },
       validateField (type) {
         this.$refs.dataForm.validateField(type)
@@ -349,6 +341,20 @@
       salesmanChanged (val) {
         this.dataForm.salesmanId = val
       },
+      // 添加订单产品明细
+      addProduct () {
+        this.productListVisible = true
+        this.$nextTick(() => {
+          this.$refs.productList.init(2)
+        })
+      },
+      // 编辑产品项
+      updateProductHandle (row) {
+        this.productListVisible = true
+        this.$nextTick(() => {
+          this.$refs.productList.init(2, row, this.addType)
+        })
+      },
       // 删除产品项
       deleteProductHandle (recordId) {
         this.productDetails.splice(this.productDetails.findIndex((item) => item.recordId === recordId))

+ 12 - 2
src/views/modules/order/order.vue

@@ -1,7 +1,7 @@
 <!-- 订单 -->
 <template>
   <div class="order">
-    <template v-if="!addOrUpdateVisible && !detailVisible && !arrivedVisible">
+    <template v-if="!addOrUpdateVisible && !detailVisible && !arrivedVisible && !confirmVisible">
       <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
         <el-form-item label="客户名称">
           <cus-component v-model="dataForm.customerId" :cus-id="dataForm.customerId"></cus-component>
@@ -120,11 +120,12 @@
           fixed="right"
           header-align="center"
           align="center"
-          width="120"
+          width="180"
           label="操作">
           <template slot-scope="scope">
             <el-button v-if="isAuth('order:ctl:info')" type="text" size="small" @click="detailHandle(scope.row.orderId)">查看</el-button>
             <el-button v-if="isAuth('order:ctl:editor') && Number(scope.row.state) === 1" type="text" size="small" @click="addOrUpdateHandle(scope.row.orderId,false)">编辑</el-button>
+            <el-button v-if="isAuth('order:ctl:determine') && Number(scope.row.state) === 1" type="text" size="small" @click="techConfirm(scope.row)">技术确定</el-button>
 <!--            <el-button v-if="isAuth('order:ctl:deliver') && Number(scope.row.orderState) === 3" type="text" size="small" @click="deliverHandle(scope.row.orderId)">发货</el-button>-->
 <!--            <el-button v-if="isAuth('order:ctl:arrived') && Number(scope.row.orderState) === 4 " type="text" size="small" @click="arrivedHandle(scope.row)">送达</el-button>-->
           </template>
@@ -170,6 +171,7 @@
         addOrUpdateVisible: false,
         detailVisible: false,
         arrivedVisible: false,
+        confirmVisible: false,
         dataForm: {},
         dataList: [],
         pageIndex: 1,
@@ -203,6 +205,7 @@
         this.addOrUpdateVisible = false
         this.detailVisible = false
         this.arrivedVisible = false
+        this.confirmVisible = false
       },
       // 查询
       queryData () {
@@ -302,6 +305,13 @@
         this.$nextTick(() => {
           this.$refs.arrived.init(row.orderId, row.orderCode)
         })
+      },
+      // 技术确定
+      techConfirm (row) {
+        this.addOrUpdateVisible = true
+        this.$nextTick(() => {
+          this.$refs.addOrUpdate.init(row.orderId, false, 2)
+        })
       }
     }
   }

+ 18 - 11
src/views/modules/product/template-add-or-update.vue

@@ -8,22 +8,22 @@
       <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
         <el-row class="my-row">
           <el-form-item label="产品名称" prop="productName">
-            <el-input v-model="dataForm.productName" placeholder="产品名称"></el-input>
+            <el-input v-model="dataForm.productName" :disabled="bizType === 3" placeholder="产品名称"></el-input>
           </el-form-item>
         </el-row>
         <el-row class="my-row">
           <el-form-item label="规格" prop="productSpecifications">
-            <el-input v-model="dataForm.productSpecifications" placeholder="规格"></el-input>
+            <el-input v-model="dataForm.productSpecifications" :disabled="bizType === 3" placeholder="规格"></el-input>
           </el-form-item>
         </el-row>
         <el-row class="my-row">
           <el-form-item label="数量" prop="cnt">
-            <el-input-number v-model="dataForm.cnt"></el-input-number>
+            <el-input-number v-model="dataForm.cnt" :disabled="bizType === 3" ></el-input-number>
           </el-form-item>
         </el-row>
         <el-row class="my-row">
           <el-form-item label="含税单价" prop="price">
-            <el-input-number v-model="dataForm.price" :step="1" :min="0" :precision="1"></el-input-number>
+            <el-input-number v-model="dataForm.price" :step="1" :min="0" :precision="1" :disabled="bizType === 3" ></el-input-number>
           </el-form-item>
         </el-row>
         <el-row class="my-row">
@@ -33,7 +33,12 @@
         </el-row>
         <el-row class="my-row">
           <el-form-item label="税率" prop="rate">
-            <el-input-number style="width: 160px" v-model="dataForm.rate" :step="1" :precision="1"/>&nbsp;%
+            <el-input-number style="width: 160px" v-model="dataForm.rate" :step="1" :precision="1" :disabled="bizType === 3" />&nbsp;%
+          </el-form-item>
+        </el-row>
+        <el-row class="my-row" v-if="bizType === 2">
+          <el-form-item label="订单编号" prop="productNumber">
+            <el-input v-model="dataForm.productNumber" placeholder="订单编号" :disabled="bizType === 3" ></el-input>
           </el-form-item>
         </el-row>
         <el-row class="my-row">
@@ -41,9 +46,9 @@
             <el-input type="textarea" v-model="dataForm.notes" placeholder="备注"></el-input>
           </el-form-item>
         </el-row>
-        <el-row class="my-row" v-if="bizType === 2">
-          <el-form-item label="产品关联">
-            <product-component v-model="dataForm.productId" @productSelected="prodSelected"/>
+        <el-row class="my-row" v-if="bizType === 2 || bizType === 3">
+          <el-form-item prop="productId" label="产品关联">
+            <product-component v-model="dataForm.productId" :product-id="dataForm.productId" @productSelected="prodSelected"/>
           </el-form-item>
         </el-row>
       </el-form>
@@ -80,13 +85,15 @@
         this.visible = false
       },
       // 初始化:type: 1 沟通产品明细/合同台账产品明细,2 订单产品明细
-      init (type, dataForm) {
-        this.bizType = type
+      init (type, dataForm, techType) {
+        this.bizType = techType ? 3 : type
         if (dataForm) {
           this.isModify = true
           this.dataForm = dataForm
         } else {
-          this.dataForm.recordId = Math.round(Math.random() * 1000000)
+          this.dataForm = {
+            recordId: Math.round(Math.random() * 1000000)
+          }
         }
         this.visible = true
       },