zhangqiOMG 2 年 前
コミット
7a7ddba6a3

+ 2 - 2
package-lock.json

@@ -11636,7 +11636,7 @@
     },
     "node_modules/print-js": {
       "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/print-js/-/print-js-1.6.0.tgz",
+      "resolved": "https://registry.npmjs.org/print-js/-/print-js-1.6.0.tgz",
       "integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg=="
     },
     "node_modules/prismjs": {
@@ -24804,7 +24804,7 @@
     },
     "print-js": {
       "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/print-js/-/print-js-1.6.0.tgz",
+      "resolved": "https://registry.npmjs.org/print-js/-/print-js-1.6.0.tgz",
       "integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg=="
     },
     "prismjs": {

+ 1 - 1
src/HDrpManagement/orderManage/details/index.vue

@@ -50,7 +50,7 @@
         <default-info :mainData="mainData"></default-info>
       </div>
       <div slot="slot1">
-        <product-list ref="prod"></product-list>
+        <product-list :data="mainData" ref="prod"></product-list>
       </div>
       <div slot="slot2">
         <orderprogress></orderprogress>

+ 0 - 0
src/HDrpManagement/orderManage/details/tabs/changeSaler.vue


+ 42 - 36
src/HDrpManagement/orderManage/details/tabs/productlist.vue

@@ -38,7 +38,7 @@
         label="数量"
         width="180">
         <template slot-scope="scope">
-          <el-input-number :controls="true" controls-position='right' :step-strictly="true" v-if="type === 'edit'" size="mini" v-model="scope.row.qty" :min="scope.row.orderminqty" :step="scope.row.orderaddqty" label="输入数量" @change="rowChange(scope.row,scope.$index)"></el-input-number>
+          <el-input-number :controls="true" controls-position='right' :step-strictly="true" v-if="type === 'edit' || data.status === '审核'" size="mini" v-model="scope.row.qty" :min="scope.row.orderminqty" :step="scope.row.orderaddqty" label="输入数量" @change="rowChange(scope.row,scope.$index)"></el-input-number>
           <span v-else>{{scope.row.qty}}</span>
         </template>
       </el-table-column>
@@ -244,27 +244,43 @@ export default {
     },
     rowChange (val,index) {
       let that = this
-      this.$set(this.tableData,index,val)
+     
       // // 防抖
       if(this.time !== null){
         clearTimeout(this.time);
       }
       this.time = setTimeout(() => {
-        that.updateOrder({
-          "sa_orderid": this.data.sa_orderid, //订单ID
-          "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
-          "sa_contractid": this.data.contacts.contactsid, //合同ID
-          "type": this.data.type, //订单类型
-          "items": [{
-            "sa_orderitemsid": val.sa_orderitemsid,//0表示新增
-            "itemid": val.itemid, //商品ID
-            "qty": val.qty, //数量
-            "needdate": val.needdate,//可以不传,修改交期
-            "price":val.price,
-            "remarks":val.remarks
-          }]
-        })
-      },500)
+        if (this.data.status === '审核') {
+          this.changeOrderQty({
+            "sa_orderitemsid":val.sa_orderitemsid,
+            "sa_orderid":this.data.sa_orderid,//订单ID
+            "itemid":val.itemid,//商品ID
+            "type":"数量",//调整类型,目前只支持数量
+            "newvalue":val.qty,//调整后值
+            "remarks":""
+          },()=>{
+            this.$set(this.tableData,index,val)
+          })
+           
+        } else {
+          that.updateOrder({
+            "sa_orderid": this.data.sa_orderid, //订单ID
+            "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+            "sa_contractid": this.data.contacts.contactsid, //合同ID
+            "type": this.data.type, //订单类型
+            "items": [{
+              "sa_orderitemsid": val.sa_orderitemsid,//0表示新增
+              "itemid": val.itemid, //商品ID
+              "qty": val.qty, //数量
+              "needdate": val.needdate,//可以不传,修改交期
+              "price":val.price,
+              "remarks":val.remarks
+            }]
+          },()=>{
+            this.$set(this.tableData,index,val)
+          })
+        }
+      },1000)
     },
     onDateChange (val){
       let that = this
@@ -281,11 +297,19 @@ export default {
         }]
       })
     },
-    async updateOrder (val) {
+    async updateOrder (val,fn) {
       const res  = await this.$api.requested({
         "id": 20221109093602,
         "content": val
       })
+      res.code === 1?fn():""
+    },
+    async changeOrderQty (val,fn) {
+      const res = await this.$api.requested({
+        "id": 20221110145302,
+        "content": val
+      })
+      res.code === 1?fn():""
     },
     async dateChangeNeed(val){
       const res = await this.$api.requested({
@@ -322,24 +346,6 @@ export default {
         },
       })
     },
-    /*async export1() {
-      if(!Object.keys(this.$refs.multipleTable.tableData).length > 0) return
-      let res = await this.$api.requested({
-        "id": 20221109093902,
-        "content": {
-          "sa_orderid": this.$route.query.id, //订单ID
-          "pageNumber": 1,
-          "pageSize": 20,
-          "where": {
-            "condition": ""
-          }
-        }
-      })
-      this.tool.showMessage(res,() => {
-        /!* window.open(res.msg,'_self')*!/
-        window.open(res.data,'_self')
-      })
-    }*/
   },
   mounted () {
     this.listData()

+ 31 - 15
src/HDrpManagement/orderManage/modules/add.vue

@@ -26,9 +26,9 @@
                 <el-input readonly v-model="form.type" placeholder="订单类型" :maxlength="11" clearable :style="{width: '100%'}"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="12" v-if="form.type !== '项目订单'">
               <el-form-item label="选择经销商" prop="sys_enterpriseid">
-                <enterprise ref="enterprise" :type="form.type == '项目订单' ? 7 : 1" @rowClick="rowClick"></enterprise>
+                <agent ref="enterprise" ismanage="1" @rowClick="rowClick"></agent>
               </el-form-item>
             </el-col>
             <el-col v-if="form.type === '促销订单'" :span="12">
@@ -42,13 +42,13 @@
                 </el-popover>
               </el-form-item>
             </el-col>
-            <el-col v-if="form.type === '项目订单' && form.sys_enterpriseid" :span="12">
+            <el-col v-if="form.type === '项目订单'" :span="12">
               <el-form-item label="项目合同" prop="sa_contractid">
                 <el-popover
                   placement="bottom"
                   trigger="click"
                   v-model="visible">
-                  <orderCanUseContract ref="contract" @listCreate="listCreate" @rowClick="contractClick"></orderCanUseContract>
+                  <orderCanUseContract ref="contract" @listCreate="listCreate" ismanage="1" @rowClick="contractClick"></orderCanUseContract>
                   <el-input readonly v-model="form.contractname" slot="reference" placeholder="选择合同"></el-input>
                 </el-popover>
               </el-form-item>
@@ -61,7 +61,7 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="12" v-if="form.type !=='工具订单' && form.type !=='项目订单'">
               <el-form-item label="选择品牌" prop="sa_brandid">
                 <el-select :disabled="form.type==='促销订单'" v-model="form.sa_brandid" placeholder="请选择选择品牌" clearable :style="{width: '100%'}">
                   <el-option v-for="(item, index) in sa_brandidOptions" :key="index" :label="item.brandname"
@@ -69,7 +69,7 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="12"  v-if="form.type !=='工具订单' && form.type !=='项目订单'">
               <el-form-item label="选择领域" prop="tradefield">
                 <el-select :disabled="form.type==='促销订单'" v-model="form.tradefield" placeholder="请选择选择领域" clearable :style="{width: '100%'}">
                   <el-option v-for="(item, index) in tradefieldOptions" :key="index" :label="item.tradefield"
@@ -77,7 +77,7 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="12"  v-if="form.type !=='工具订单' && form.type !=='项目订单'">
               <el-form-item label="领域明细">
                 <el-select v-model="form.tradefieldmx" placeholder="请选择领域明细" clearable :style="{width: '100%'}">
                   <el-option v-for="(item, index) in childField" :key="index" :label="item"
@@ -97,7 +97,9 @@
 </template>
 
 <script>
-import enterprise from '@/template/enterprise/index.vue'
+import agent from '@/template/orderAddCanUseAgent/index.vue'
+import enterprise from '@/template/orderAddCanUseEnterprise/index.vue'
+
 import orderCanUseContract from '@/template/orderCanUseContract/index.vue'
 import orderCanUseActivity from '@/template/orderCanUseActivity/index.vue'
 
@@ -166,6 +168,7 @@ export default {
     }
   },
   components:{
+    agent,
     enterprise,
     orderCanUseContract,
     orderCanUseActivity
@@ -179,11 +182,22 @@ export default {
     }
   },
   methods:{
-    handleCommand (command) {
+    async handleCommand (command) {
       this.form.type = command
-      this.drawer = true
-      this.pageData()
-      this.specordermx()
+      if (command === '工具订单') {
+        const res = await this.$api.requested({
+          "id": 20221108111402,
+          "content":this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$store.dispatch('changeDetailDrawer',true)
+          this.$router.push({path:'/orderdetail',query:{id:res.data.sa_orderid,rowindex:res.data.rowindex}})
+        })
+      } else {
+        this.drawer = true
+        this.specordermx()
+      }
+     
     },
     submitForm() {
       console.log(this.form)
@@ -211,23 +225,25 @@ export default {
       const res = await this.$api.requested({
         "id": 20220924163702,
         "content": {
-          "pageSize": 999,
+          "sys_enterpriseid": this.form.sys_enterpriseid,
         }
       })
       this.sa_brandidOptions = res.data
 
       const res1 = await this.$api.requested({
-        "id": 20221223141802,
+        "id": 20230219212802,
         "content": {
-          "pageSize": 999,
+          "sys_enterpriseid": this.form.sys_enterpriseid,
         }
       })
       this.tradefieldOptions = res1.data
     },
     rowClick (row) {
+      console.log(row)
       this.form.sys_enterpriseid = row.sys_enterpriseid
       this.form.type === '促销订单'?this.$refs['activity'].listData(row.sys_enterpriseid):''
       this.form.type === '促销订单'?this.activityClick({}):''
+      this.pageData()
     },
     listCreate (param) {
       param.content.sys_enterpriseid = this.form.sys_enterpriseid

+ 475 - 0
src/HDrpManagement/orderManage/modules/edit copy.vue

@@ -0,0 +1,475 @@
+<template>
+  <div>
+    <el-button :disabled="data.status !=='新建' && data.status !=='提交'" type="primary" size="mini" @click="onShow(drawer = true)">编辑</el-button>
+    <el-drawer
+    :visible.sync="drawer"
+    direction="rtl"
+    append-to-body
+    size="80%">
+    <div slot="title">
+      <div class="flex-align-center">
+        <p><span style="font-size:14px">订单合计:</span><span style="color:red;font-size:16px;"><b>¥&nbsp;{{tool.formatAmount(data.amount,2)}}</b></span></p>
+        <!-- <label style="font-size:14px;margin-left:10px" for="">备注:</label>
+        <input class="order__note__input" v-model="defaultData.remarks" type="text" placeholder="请输入订单备注"> -->
+      </div>
+    </div>
+    <div class="drawer__panel">
+      <div>
+        <div class="mt-10">
+          <p class="normal-title inline-16">选择账户</p>
+          <el-popover
+            placement="bottom"
+            title="选择账户"
+            trigger="click"
+            v-model="visible3">
+            <el-table
+              :data="accountlist"
+              style="width: 100%"
+              size="mini">
+              <el-table-column
+                prop="accountname"
+                label="账户名称"
+                width="120">
+              </el-table-column>
+              <el-table-column
+                prop="balance"
+                label="账户余额"
+                width="120">
+                <template slot-scope="scope">
+                  ¥{{tool.formatAmount(scope.row.balance,2)}}
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="操作"
+                width="90">
+                <template slot-scope="scope">
+                  <el-button type="text" @click="(defaultData.accountclass = scope.row,visible3 = false)" size="mini">选 择</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-button slot="reference" type="text" size="mini">选择其他账户</el-button>
+          </el-popover>
+        </div>
+        <div class="reveive__panel normal-margin">
+          <p><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
+          <small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</small>
+          <div v-if="(data.type === '标准订单' ||  data.type === '特殊订单') && isusedrebate === 1">
+            <el-checkbox v-model="checked" :true-label="1" :false-label="0">使用返利金</el-checkbox>
+            <div v-if="checked" class="flex-align-center">
+              <p class="inline-16"><b>返利金余额:{{tool.formatAmount(rebateAccount[0]?rebateAccount[0].balance:0,2)}}</b></p>
+              <el-input class="inline-16" size="mini" style="width:150px" v-model="rebateamount" @blur="useRebate" placeholder="输入使用金额"></el-input>
+              <small>(返利金最高使用比例{{data.order_rebate_userate}}%)</small>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex-align-center normal-margin">
+        <div style="flex:1;margin-right:10px">
+          <div class="mt-10">
+            <p class="normal-title inline-16">选择财务信息</p>
+            <el-popover
+              placement="bottom"
+              title="选择财务信息"
+              trigger="click"
+              v-model="visible2">
+              <el-table
+                :data="financiallist"
+                style="width: 100%"
+                size="mini">
+                <el-table-column
+                  prop="enterprisename"
+                  label="公司抬头"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  prop="address"
+                  label="开票地址"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  prop="bank"
+                  label="开户行"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  prop="bankcardno"
+                  label="开户账号"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="90">
+                  <template slot-scope="scope">
+                    <el-button type="text" @click="(defaultData.fin_info = scope.row,visible2 = false)" size="mini">选 择</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-button slot="reference" type="text" size="mini">选择其他</el-button>
+            </el-popover>
+          </div>
+          <div class="reveive__panel normal-margin">
+            <p><small>抬头:&nbsp;</small><span class="inline-16"><b>{{defaultData.fin_info.enterprisename}}</b></span></p>
+            <div class="flex-align-center">
+              <p class="inline-16"><small>开票地址:&nbsp;</small>{{defaultData.fin_info.address?defaultData.fin_info.address:'--'}}</p>
+              <p><small>开户行:&nbsp;</small> {{defaultData.fin_info.bank}} &emsp;<small>开户账号:&nbsp;</small> {{defaultData.fin_info.bankcardno}}</p>
+            </div>
+          </div>
+        </div>
+        <div style="flex:1;">
+          <div class="mt-10">
+            <p class="normal-title inline-16">收货信息</p>
+            <el-popover
+              placement="bottom"
+              title="选择地址"
+              trigger="click"
+              v-model="visible">
+              <el-table
+                :data="receiveAddresslist"
+                style="width: 100%"
+                size="mini">
+                <el-table-column
+                  prop="name"
+                  label="联系人"
+                  width="90">
+                </el-table-column>
+                <el-table-column
+                  prop="phonenumber"
+                  label="电话"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  label="地址"
+                  width="360">
+                  <template slot-scope="scope">
+                    {{scope.row.province}}{{scope.row.city}}{{scope.row.county}}{{scope.row.address}}
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="90">
+                  <template slot-scope="scope">
+                    <el-button type="text" @click="(defaultData.re_info = scope.row,visible = false)" size="mini">选 择</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-button slot="reference" type="text" size="mini">选择其他地址</el-button>
+            </el-popover>
+          </div>
+          <div class="reveive__panel normal-margin">
+            <p><span class="inline-16"><b>{{defaultData.re_info.name}}</b></span><small>{{defaultData.re_info.phonenumber}}</small></p>
+            <small>{{defaultData.re_info.province}}{{defaultData.re_info.city}}{{defaultData.re_info.county}}{{defaultData.re_info.address?defaultData.re_info.address:'--'}}</small>
+          </div>
+        </div>
+        
+      </div>
+
+      <div class="mt-10">
+        <p class="normal-title inline-16">领域明细</p>
+      </div>
+      <div class="mt-10 flex-align-center">
+        <div v-for="item in data.subvalues" :key="item.index" :style="defaultData.tradefieldmx === item?{background:'#d9ecff'}:{background:'#fff'}" class="reveive__panel normal-margin inline-16" @click="defaultData.tradefieldmx = item">
+          <p>{{item}}</p>
+        </div>
+      </div>
+      <div class="mt-10">
+        <p class="normal-title inline-16">寄付方式</p>
+      </div>
+      <div class="mt-10 flex-align-center">
+        <div :style="defaultData.freightstatus === '到付'?{background:'#d9ecff'}:{background:'#fff'}" class="reveive__panel normal-margin inline-16" @click="defaultData.freightstatus = '到付'">
+          <p>到付</p>
+        </div>
+        <div :style="defaultData.freightstatus === '预付'?{background:'#d9ecff'}:{background:'#fff'}" class="reveive__panel normal-margin" @click="defaultData.freightstatus = '预付'">
+          <p>预付</p>
+        </div>
+      </div>
+      
+      <div class="mt-10">
+        <p class="normal-title inline-16">订单备注</p>
+      </div>
+      <div class="mt-10">
+        <el-input v-model="defaultData.remarks" type="textarea" :autosize="{minRows:5,maxRows:10}" placeholder="请输入订单备注"></el-input>
+      </div>
+      <div>
+        <div class="mt-10">
+          <p class="normal-title inline-16">订单产品</p>
+          <el-button type="text" size="mini" @click="addMoreProduct">{{setcol === 12?'关闭选择':'添加产品'}}</el-button>
+        </div>
+        <el-row :gutter="10">
+          <el-col :span="setcol">
+            <product-list ref="prolist" :data="data" :type="data.status === '提交'?'':'edit'" @onSuccess="onDelSuccess"></product-list>
+          </el-col>
+          <el-col :span="24 - setcol">
+            <add-product ref="addpro" :data="data" @onConfirm="onConfirm"></add-product>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <div class="fixed__btn__panel">
+      <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
+      <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">保存修改</el-button>
+    </div>
+  </el-drawer>
+  </div>
+</template>
+
+<script>
+import previewImage from '@/components/previewImage/index.vue'
+import productList from '../details/tabs/productlist.vue'
+import addProduct from '@/template/orderCanUseProduct/index.vue'
+export default {
+  props:['data'],
+  components:{
+    previewImage,
+    productList,
+    addProduct
+  },
+  data () {
+    return {
+      visible:false,
+      visible1:false,
+      visible2:false,
+      visible3:false,
+      drawer:false,
+      receiveAddresslist:[],
+      accountlist:[],
+      logisticcomlist:[],
+      financiallist:[],
+      defaultData:{
+        re_info:{},
+        logist_info:{},
+        fin_info:{},
+        accountclass:{},
+        account_index:0,
+        remarks:this.data.remarks,
+        freightstatus:'到付',
+        tradefieldmx:''
+      },
+      agnetInfo:{},
+      total:0,
+      setcol:24,
+      checked:0,
+      rebateamount:null,
+      isusedrebate:0,
+      rebateAccount:[]
+    }
+  },
+  methods:{
+    onShow () {
+      this.queryAgentiInfo()
+      this.defaultData.freightstatus = this.data.freightstatus
+      this.defaultData.tradefieldmx = this.data.tradefieldmx
+    },
+    async queryAgentiInfo () {
+      const res = await this.$api.requested({
+        "id": "20221022165203",
+        "content": {
+          sys_enterpriseid:this.data.sys_enterpriseid
+        }
+      })
+      this.agnetInfo = res.data
+
+      this.receiveAddress()
+
+      this.queryAccount()
+
+      this.queryLogisticcom()
+
+      this.queryFinancial()
+
+      this.queryUsedrebate()
+
+      this.checked = this.data.rebate_used
+      this.rebateamount = this.data.rebateamount
+    },
+    // 收货信息:合作企业联系人
+    async receiveAddress () {
+      const res = await this.$api.requested({
+        "id": "20221009155803",
+        "content": {
+        "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
+          "where":{
+            "condition":"",
+            "workaddress":0
+          }
+        }
+      })
+      this.receiveAddresslist = res.data
+      this.defaultData.re_info = res.data[0] ? res.data[0] : {}
+      console.log(res.data);
+      
+    },
+
+    // 账号信息
+    async queryAccount () {
+      const res = await this.$api.requested({
+        "id": "20221008134803",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 100,
+          "where":{
+            "isused":1
+          }
+        }
+      })
+     this.accountlist = res.data.filter(e=>{
+        return e.isrebate !== 1
+      })
+      this.rebateAccount = res.data.filter(e=>{
+        return e.isrebate === 1
+      })
+      this.defaultData.accountclass = this.data.accountclass
+    },
+
+    // 物流企业
+    async queryLogisticcom () {
+      const res = await this.$api.requested({
+        "id": "20221121135804",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 100
+        }
+      })
+      this.logisticcomlist = res.data
+      
+      this.defaultData.logist_info = this.data.logiscomp
+    },
+    // 财务信息
+    async queryFinancial () {
+      const res = await this.$api.requested({
+        "id": "20221013160602",
+        "content": {
+          "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
+          "pageNumber": 1,
+          "pageSize": 100
+        }
+      })
+      this.financiallist = res.data
+      this.defaultData.fin_info = this.data.finance
+    },
+    async onSubmit() {
+      const res = await this.$api.requested({
+        "id": 20221108111402,
+        "content": {
+          "sa_orderid": this.$route.query.id,
+          "sys_enterpriseid": this.data.sys_enterpriseid, //订货企业id
+          "sa_accountclassid": this.defaultData.accountclass.sa_accountclassid, //营销账户类型ID
+          "sa_brandid": this.data.sa_brandid, //品牌ID
+          "sa_contractid":this.data.sa_contractid, //合同ID,标准订单不传
+          "sa_projectid": this.data.sa_projectid, //工程项目表ID,标准订单不传
+          "sys_enterprise_financeid": this.defaultData.fin_info.sys_enterprise_financeid, //合作企业财务信息ID(开票信息)
+          "sa_logiscompid": this.defaultData.logist_info.sa_logiscompid, //物流公司档案ID
+          "rec_contactsid": this.defaultData.re_info.contactsid, //合作企业联系人表ID(收货信息)
+          "type": this.data.type, //订单类型
+          "typemx":this.data.typemx, //明细分类,可选
+          "remarks": this.defaultData.remarks, //可选
+          // "saler_hrid":this.data.saler_hrid//销售人员hrid,业务员hrid
+          "pay_enterpriseid":this.data.pay_enterpriseid,
+          "tradefield":this.data.tradefield,
+          "freightstatus":this.defaultData.freightstatus
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        console.log(this.data)
+        this.$emit('onSuccess')
+        this.useRebate()
+        this.drawer = false
+      })
+    },
+    onDelSuccess () {
+      this.$refs.addpro.listData()
+    },
+    addMoreProduct () {
+      this.setcol === 12?this.setcol = 24 : this.setcol = 12
+    },
+    // 订单添加商品
+    async onConfirm (data) {
+      const res = await this.$api.requested({
+        "id": 20221109093602,
+        "content": {
+          "sa_orderid": this.$route.query.id, //订单ID
+          "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+          "type": "标准订单", //订单类型
+          "items": data.map(e=>{
+            return {
+              sa_orderitemsid:0,
+              itemid:e.itemid,
+              qty:e.orderminqty,
+              needdate:e.deliverydate
+            }
+          })
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.setcol = 24
+        this.$refs['prolist'].listData()
+      })
+    },
+     async useRebate () {
+      if (this.rebateamount == null) return this.$message({
+          message:"返利金不能为空",
+          type:'error'
+        })
+      const res = await this.$api.requested({
+        "id": 20230218225002,
+        "content": {
+          "sa_orderid": this.data.sa_orderid, //订单金额
+          "isused": this.checked, //是否使用
+          "rebateamount": this.rebateamount //返利金使用金额
+        },
+      })
+      if (res.code === 0) this.$message({
+        message:`使用返利金失败!${res.msg}`,
+        type:'error'
+      })
+    },
+    // 查询站点是否使用返利金
+    async queryUsedrebate () {
+      const res = await this.$api.requested({
+         "classname": "webmanage.site.site",
+        "method": "querySite_Parameter",
+        "content": {
+        }
+      })
+      this.isusedrebate = res.data.order_rebate_used
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.reveive__panel{
+  font-size: 14px;
+  line-height: 30px;
+  padding: 10px;
+  background: #d9ecff;
+  border: 1px dashed #0676e7;
+  cursor: pointer;
+}
+.account__panel small,.reveive__panel small{
+  color:#666
+}
+.account__panel{
+  width: calc(25% - 26px);
+  padding: 10px;
+  margin-bottom:10px;
+  border: 1px dashed #666;
+}
+.act{
+  background: #d9ecff;
+  border: 1px dashed #0676e7;
+}
+.image {
+  width:40px;height:40px;margin:0px auto;
+}
+.order__note__input{
+  border: none;
+  outline: none;
+  /* margin-left: 10px; */
+  /* border-bottom: 1px solid #f1f2f3; */
+  flex:1
+}
+</style>

+ 141 - 161
src/HDrpManagement/orderManage/modules/edit.vue

@@ -1,6 +1,7 @@
 <template>
   <div>
-    <el-button :disabled="data.status !=='新建' && data.status !=='提交'" type="primary" size="mini" @click="onShow(drawer = true)">编辑</el-button>
+    <el-button :disabled="data.status !=='新建'" type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button>
+    <!-- <el-button type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button> -->
     <el-drawer
     :visible.sync="drawer"
     direction="rtl"
@@ -11,60 +12,51 @@
         <p><span style="font-size:14px">订单合计:</span><span style="color:red;font-size:16px;"><b>¥&nbsp;{{tool.formatAmount(data.amount,2)}}</b></span></p>
         <!-- <label style="font-size:14px;margin-left:10px" for="">备注:</label>
         <input class="order__note__input" v-model="defaultData.remarks" type="text" placeholder="请输入订单备注"> -->
+         <p>运费:{{data.freefreightamount === 0?'当前订单免运费':`订单满${data.freefreightamount}元免运费,当前还差${data.freefreightamount - data.amount}元`}}</p>
       </div>
     </div>
     <div class="drawer__panel">
+      <!-- 经销商信息 -->
+      <div class="reveive__panel normal-margin flex-align-center">
+        <p class="inline-16"><small>经销商编号:&nbsp;</small>{{data.agentnum}}</p>
+        <p class="inline-16"><small>经销商名称:&nbsp;</small>{{data.enterprisename}}</p>
+        <p class="inline-16"><small>领域:&nbsp;</small>{{data.tradefield}}</p>
+        <p class="inline-16"><small>品牌:&nbsp;</small>{{data.brandname}}</p>
+        <div class="flex-align-center">
+          <small>所属业务员:&nbsp;</small>{{saler_name}}
+          <selectSaler @selectRow="selectRow" ref="saler">
+            <el-button type="text" size="mini" slot="input"  @click="$refs['saler'].visible = true">&nbsp;更换业务员</el-button>
+          </selectSaler>
+        </div>
+      </div>
+      <!-- 项目订单显示信息 -->
+      <div v-if="data.type === '项目订单'" class="reveive__panel normal-margin flex-align-center">
+        <p class="inline-16"><small>项目信息:&nbsp;</small>{{data.projectname}}</p>
+        <p class="inline-16"><small>合同信息:&nbsp;</small>{{data.contract_title}}</p>
+      </div>
       <div>
         <div class="mt-10">
-          <p class="normal-title inline-16">选择账户</p>
-          <el-popover
-            placement="bottom"
-            title="选择账户"
-            trigger="click"
-            v-model="visible3">
-            <el-table
-              :data="accountlist"
-              style="width: 100%"
-              size="mini">
-              <el-table-column
-                prop="accountname"
-                label="账户名称"
-                width="120">
-              </el-table-column>
-              <el-table-column
-                prop="balance"
-                label="账户余额"
-                width="120">
-                <template slot-scope="scope">
-                  ¥{{tool.formatAmount(scope.row.balance,2)}}
-                </template>
-              </el-table-column>
-              <el-table-column
-                label="操作"
-                width="90">
-                <template slot-scope="scope">
-                  <el-button type="text" @click="(defaultData.accountclass = scope.row,visible3 = false)" size="mini">选 择</el-button>
-                </template>
-              </el-table-column>
-            </el-table>
-            <el-button slot="reference" type="text" size="mini">选择其他账户</el-button>
-          </el-popover>
+          <p class="normal-title inline-16">支付信息</p>
         </div>
         <div class="reveive__panel normal-margin">
-          <p><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
-          <small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</small>
+          <p class="flex-align-center"><small>结算企业:&nbsp;</small><b>{{defaultData.finance.enterprisename}}</b>&nbsp;<financeEnterprise v-if="data.type !== '项目订单'" :sys_enterpriseid="data.sys_enterpriseid" @select="onSelect"></financeEnterprise></p>
+          <div class="flex-align-center">
+            <p class="inline-16"><small>账户余额:&nbsp;</small><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
+            <p class="inline-16"><small>账户名称:&nbsp;</small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</p>
+            <p><small>本单金额:&nbsp;</small>{{tool.formatAmount(data.amount - rebateamount,2)}}</p>
+          </div>
           <div v-if="(data.type === '标准订单' ||  data.type === '特殊订单') && isusedrebate === 1">
             <el-checkbox v-model="checked" :true-label="1" :false-label="0">使用返利金</el-checkbox>
             <div v-if="checked" class="flex-align-center">
-              <p class="inline-16"><b>返利金余额:{{tool.formatAmount(rebateAccount[0]?rebateAccount[0].balance:0,2)}}</b></p>
+              <p class="inline-16"><b>返利金余额:{{tool.formatAmount(defaultData.rebatebalance,2)}}</b></p>
               <el-input class="inline-16" size="mini" style="width:150px" v-model="rebateamount" @blur="useRebate" placeholder="输入使用金额"></el-input>
-              <small>(返利金最高使用比例{{data.order_rebate_userate}}%)</small>
+              <small>(返利金最高使用比例{{data.order_rebate_userate}}%,本单上限:{{tool.formatAmount(data.amount * data.order_rebate_userate / 100,2)}})</small>
             </div>
           </div>
         </div>
       </div>
-      <div class="flex-align-center normal-margin">
-        <div style="flex:1;margin-right:10px">
+      <div class="flex-align-start normal-margin">
+        <div style="flex:1; margin-right:10px">
           <div class="mt-10">
             <p class="normal-title inline-16">选择财务信息</p>
             <el-popover
@@ -109,10 +101,8 @@
           </div>
           <div class="reveive__panel normal-margin">
             <p><small>抬头:&nbsp;</small><span class="inline-16"><b>{{defaultData.fin_info.enterprisename}}</b></span></p>
-            <div class="flex-align-center">
-              <p class="inline-16"><small>开票地址:&nbsp;</small>{{defaultData.fin_info.address?defaultData.fin_info.address:'--'}}</p>
-              <p><small>开户行:&nbsp;</small> {{defaultData.fin_info.bank}} &emsp;<small>开户账号:&nbsp;</small> {{defaultData.fin_info.bankcardno}}</p>
-            </div>
+            <p class="inline-16"><small>开票地址:&nbsp;</small>{{defaultData.fin_info.address?defaultData.fin_info.address:'--'}}</p>
+            <p><small>开户行:&nbsp;</small> {{defaultData.fin_info.bank}} &emsp;<small>开户账号:&nbsp;</small> {{defaultData.fin_info.bankcardno}}</p>
           </div>
         </div>
         <div style="flex:1;">
@@ -157,46 +147,44 @@
           </div>
           <div class="reveive__panel normal-margin">
             <p><span class="inline-16"><b>{{defaultData.re_info.name}}</b></span><small>{{defaultData.re_info.phonenumber}}</small></p>
-            <small>{{defaultData.re_info.province}}{{defaultData.re_info.city}}{{defaultData.re_info.county}}{{defaultData.re_info.address?defaultData.re_info.address:'--'}}</small>
+            <small>{{defaultData.re_info.province?defaultData.re_info.province:'--'}}{{defaultData.re_info.city}}{{defaultData.re_info.county}}{{defaultData.re_info.address?defaultData.re_info.address:''}}</small>
           </div>
         </div>
         
       </div>
-
-      <div class="mt-10">
-        <p class="normal-title inline-16">领域明细</p>
-      </div>
-      <div class="mt-10 flex-align-center">
-        <div v-for="item in data.subvalues" :key="item.index" :style="defaultData.tradefieldmx === item?{background:'#d9ecff'}:{background:'#fff'}" class="reveive__panel normal-margin inline-16" @click="defaultData.tradefieldmx = item">
-          <p>{{item}}</p>
+      <div class="normal-margin flex-align-center">
+        <div class="inline-16">
+          <small><b>回签单</b>&nbsp;</small>
+          <el-radio-group v-model="signbackstatus">
+            <el-radio label="不需要">不需要</el-radio>
+            <el-radio label="纸质件">纸质件</el-radio>
+            <el-radio label="扫描件">扫描件</el-radio>
+          </el-radio-group>
         </div>
-      </div>
-      <div class="mt-10">
-        <p class="normal-title inline-16">寄付方式</p>
-      </div>
-      <div class="mt-10 flex-align-center">
-        <div :style="defaultData.freightstatus === '到付'?{background:'#d9ecff'}:{background:'#fff'}" class="reveive__panel normal-margin inline-16" @click="defaultData.freightstatus = '到付'">
-          <p>到付</p>
-        </div>
-        <div :style="defaultData.freightstatus === '预付'?{background:'#d9ecff'}:{background:'#fff'}" class="reveive__panel normal-margin" @click="defaultData.freightstatus = '预付'">
-          <p>预付</p>
+        <div style="margin-left:20px">
+          <small><b>销售类别:</b>&nbsp;</small>
+          <el-select v-model="saletype" size="mini" placeholder="请选择">
+            <el-option
+              v-for="item in saleroptions"
+              :key="item.value"
+              :label="item.value"
+              :value="item.value">
+            </el-option>
+          </el-select>
         </div>
       </div>
-      
-      <div class="mt-10">
-        <p class="normal-title inline-16">订单备注</p>
+      <div class="normal-margin">
+        <p class="normal-title mt-10 inline-16">订单备注</p>
+        <el-input size="mini" class="order__note__input" type="textarea" v-model="defaultData.remarks" :autosize="{minRows:5}" placeholder="请输入订单备注"></el-input>
       </div>
       <div class="mt-10">
-        <el-input v-model="defaultData.remarks" type="textarea" :autosize="{minRows:5,maxRows:10}" placeholder="请输入订单备注"></el-input>
-      </div>
-      <div>
-        <div class="mt-10">
+        <div>
           <p class="normal-title inline-16">订单产品</p>
           <el-button type="text" size="mini" @click="addMoreProduct">{{setcol === 12?'关闭选择':'添加产品'}}</el-button>
         </div>
         <el-row :gutter="10">
           <el-col :span="setcol">
-            <product-list ref="prolist" :data="data" :type="data.status === '提交'?'':'edit'" @onSuccess="onDelSuccess"></product-list>
+            <product-list ref="prolist" :data="data" :type="'edit'" @onSuccess="onEditSuccess"></product-list>
           </el-col>
           <el-col :span="24 - setcol">
             <add-product ref="addpro" :data="data" @onConfirm="onConfirm"></add-product>
@@ -216,15 +204,21 @@
 import previewImage from '@/components/previewImage/index.vue'
 import productList from '../details/tabs/productlist.vue'
 import addProduct from '@/template/orderCanUseProduct/index.vue'
+import financeEnterprise from '@/template/orderCanUseFinance/index.vue'
+import selectSaler from '@/template/selectSaler/index.vue'
+
 export default {
   props:['data'],
   components:{
+    selectSaler,
     previewImage,
     productList,
-    addProduct
+    addProduct,
+    financeEnterprise
   },
   data () {
     return {
+      checked:0,
       visible:false,
       visible1:false,
       visible2:false,
@@ -232,130 +226,82 @@ export default {
       drawer:false,
       receiveAddresslist:[],
       accountlist:[],
+      rebateAccount:[],
       logisticcomlist:[],
       financiallist:[],
+      saleroptions:[],
       defaultData:{
         re_info:{},
         logist_info:{},
         fin_info:{},
+        finance:{},
         accountclass:{},
         account_index:0,
-        remarks:this.data.remarks,
-        freightstatus:'到付',
-        tradefieldmx:''
+        remarks:this.data.remarks
       },
-      agnetInfo:{},
       total:0,
       setcol:24,
-      checked:0,
       rebateamount:null,
       isusedrebate:0,
-      rebateAccount:[]
+      signbackstatus:'不需要',
+      saletype:"",
+      saler_name:""
     }
   },
   methods:{
     onShow () {
-      this.queryAgentiInfo()
-      this.defaultData.freightstatus = this.data.freightstatus
-      this.defaultData.tradefieldmx = this.data.tradefieldmx
+      this.initPage()
     },
-    async queryAgentiInfo () {
-      const res = await this.$api.requested({
-        "id": "20221022165203",
-        "content": {
-          sys_enterpriseid:this.data.sys_enterpriseid
-        }
-      })
-      this.agnetInfo = res.data
+    async initPage () {
 
-      this.receiveAddress()
+      this.setDefaultData()
 
-      this.queryAccount()
-
-      this.queryLogisticcom()
-
-      this.queryFinancial()
+      this.receiveAddress()
 
       this.queryUsedrebate()
 
+      this.selectOptions()
+
       this.checked = this.data.rebate_used
       this.rebateamount = this.data.rebateamount
     },
     // 收货信息:合作企业联系人
-    async receiveAddress () {
+    async receiveAddress (fn) {
       const res = await this.$api.requested({
-        "id": "20221009155803",
+        "id": "20230220002602",
         "content": {
-        "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
-          "where":{
-            "condition":"",
-            "workaddress":0
+          "sys_enterpriseid": this.data.sys_enterpriseid,
+          "where": {
+              "condition": ""
           }
-        }
+        },
       })
       this.receiveAddresslist = res.data
-      this.defaultData.re_info = res.data[0] ? res.data[0] : {}
-      console.log(res.data);
-      
-    },
-
-    // 账号信息
-    async queryAccount () {
-      const res = await this.$api.requested({
-        "id": "20221008134803",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 100,
-          "where":{
-            "isused":1
-          }
-        }
-      })
-     this.accountlist = res.data.filter(e=>{
-        return e.isrebate !== 1
-      })
-      this.rebateAccount = res.data.filter(e=>{
-        return e.isrebate === 1
-      })
-      this.defaultData.accountclass = this.data.accountclass
     },
 
-    // 物流企业
-    async queryLogisticcom () {
-      const res = await this.$api.requested({
-        "id": "20221121135804",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 100
-        }
-      })
-      this.logisticcomlist = res.data
-      
-      this.defaultData.logist_info = this.data.logiscomp
-    },
-    // 财务信息
-    async queryFinancial () {
-      const res = await this.$api.requested({
-        "id": "20221013160602",
-        "content": {
-          "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
-          "pageNumber": 1,
-          "pageSize": 100
-        }
-      })
-      this.financiallist = res.data
+    // 设置默认信息
+    async setDefaultData () {
+      this.defaultData.rebatebalance = this.data.rebatebalance
+      this.defaultData.finance = this.data.finance
       this.defaultData.fin_info = this.data.finance
+      this.defaultData.accountclass = this.data.accountclass
+      this.defaultData.re_info = this.data.contacts
+      this.financiallist = this.data.pay_finance
+      this.saletype = this.data.saletype
+      this.signbackstatus = this.data.signbackstatus
+      this.saler_name = this.data.saler_name
     },
+   
     async onSubmit() {
       const res = await this.$api.requested({
         "id": 20221108111402,
         "content": {
           "sa_orderid": this.$route.query.id,
-          "sys_enterpriseid": this.data.sys_enterpriseid, //订货企业id
+          "sys_enterpriseid": this.defaultData.sys_enterpriseid, //订货企业id
           "sa_accountclassid": this.defaultData.accountclass.sa_accountclassid, //营销账户类型ID
           "sa_brandid": this.data.sa_brandid, //品牌ID
-          "sa_contractid":this.data.sa_contractid, //合同ID,标准订单不传
-          "sa_projectid": this.data.sa_projectid, //工程项目表ID,标准订单不传
+          // "sa_contractid":this.data.sa_contractid, //合同ID,标准订单不传
+          // "sa_projectid": this.data.sa_projectid, //工程项目表ID,标准订单不传
           "sys_enterprise_financeid": this.defaultData.fin_info.sys_enterprise_financeid, //合作企业财务信息ID(开票信息)
           "sa_logiscompid": this.defaultData.logist_info.sa_logiscompid, //物流公司档案ID
           "rec_contactsid": this.defaultData.re_info.contactsid, //合作企业联系人表ID(收货信息)
@@ -363,19 +309,19 @@ export default {
           "typemx":this.data.typemx, //明细分类,可选
           "remarks": this.defaultData.remarks, //可选
           // "saler_hrid":this.data.saler_hrid//销售人员hrid,业务员hrid
+          "signbackstatus":this.signbackstatus,
           "pay_enterpriseid":this.data.pay_enterpriseid,
           "tradefield":this.data.tradefield,
-          "freightstatus":this.defaultData.freightstatus
+          "saletype":this.saletype,
         },
       })
       this.tool.showMessage(res,()=>{
-        console.log(this.data)
         this.$emit('onSuccess')
         this.useRebate()
         this.drawer = false
       })
     },
-    onDelSuccess () {
+    onEditSuccess () {
       this.$refs.addpro.listData()
     },
     addMoreProduct () {
@@ -402,9 +348,18 @@ export default {
       this.tool.showMessage(res,()=>{
         this.setcol = 24
         this.$refs['prolist'].listData()
+        this.$emit('onSuccess')
       })
     },
-     async useRebate () {
+    async useRebate () {
+      let that = this
+      if (this.rebateamount > this.defaultData.rebatebalance ||this.rebateamount > (this.data.amount * this.data.order_rebate_userate / 100) ) return  this.$message({
+        message:`余额不足或已超过可用上限!`,
+        type:function () {
+          that.rebateamount = 0
+          return 'error'
+        }()
+      })
       if (this.rebateamount == null) return this.$message({
           message:"返利金不能为空",
           type:'error'
@@ -431,10 +386,36 @@ export default {
         }
       })
       this.isusedrebate = res.data.order_rebate_used
+    },
+    // 选择结算企业
+    onSelect (data) {
+      this.financiallist = data.finance
+      data.finance.forEach(e => {
+        if (e.isdefault === 1) {
+           this.defaultData.fin_info = e
+        } else {
+          this.defaultData.fin_info = data.finance.length > 0 ?data.finance[0]:{}
+        }
+      });
+    },
+
+    async selectOptions () {
+      const res = await this.$store.dispatch('optiontypeselect','saletype')
+      this.saleroptions = res.data
+    },
+
+    async selectRow (data) {
+      this.saler_name = data.name
+      const res = await this.$api.requested({
+        "id": 20230213154802,
+        "content": {
+          "saler_hrid": data.hrid,
+          "sa_orderid": this.data.sa_orderid
+        },
+      })
+      this.$refs['saler'].visible = false
     }
   },
-  mounted () {
-  }
 }
 
 </script>
@@ -442,15 +423,14 @@ export default {
 </style>
 <style scoped>
 .reveive__panel{
-  font-size: 14px;
+  font-size: 16px;
   line-height: 30px;
   padding: 10px;
   background: #d9ecff;
   border: 1px dashed #0676e7;
-  cursor: pointer;
 }
 .account__panel small,.reveive__panel small{
-  color:#666
+  color:#888
 }
 .account__panel{
   width: calc(25% - 26px);

+ 18 - 7
src/SDrpManagement/agentOrder/modules/add.vue

@@ -47,7 +47,7 @@
                 </el-popover>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="12" v-if="form.type !=='工具订单' && form.type !=='项目订单'">
               <el-form-item label="选择品牌" prop="sa_brandid">
                 <el-select :disabled="form.type === '促销订单'" v-model="form.sa_brandid" placeholder="请选择选择品牌" clearable :style="{width: '100%'}">
                   <el-option v-for="(item, index) in sa_brandidOptions" :key="index" :label="item.brandname"
@@ -55,7 +55,7 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="12" v-if="form.type !=='工具订单' && form.type !=='项目订单'">
               <el-form-item label="选择领域" prop="tradefield">
                 <el-select :disabled="form.type === '促销订单'" v-model="form.tradefield" placeholder="请选择选择领域" clearable :style="{width: '100%'}">
                   <el-option v-for="(item, index) in tradefieldOptions" :key="index" :label="item.tradefield"
@@ -143,14 +143,25 @@ export default {
     orderCanUseActivity
   },
   methods:{
-    handleCommand (command) {
-      this.drawer = true
+    async handleCommand (command) {
       this.form.type = command
-      this.pageData()
-      this.specordermx()
+      if (command === '工具订单') {
+        const res = await this.$api.requested({
+          "id": 20221108111402,
+          "content":this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$store.dispatch('changeDetailDrawer',true)
+          this.$router.push({path:'/orderdetail',query:{id:res.data.sa_orderid,rowindex:res.data.rowindex}})
+        })
+      } else {
+        this.drawer = true
+        this.pageData()
+        this.specordermx()
+      }
+     
     },
     submitForm() {
-      console.log(this.form,"form")
       this.$refs['form'].validate(async valid => {
         if (!valid) return
         const res = await this.$api.requested({

+ 72 - 30
src/SDrpManagement/agentOrder/modules/edit.vue

@@ -1,6 +1,7 @@
 <template>
   <div>
-    <el-button :disabled="data.status !=='新建'" type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button>
+    <!-- <el-button :disabled="data.status !=='新建'" type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button> -->
+    <el-button type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button>
     <el-drawer
     :visible.sync="drawer"
     direction="rtl"
@@ -8,31 +9,37 @@
     size="80%">
     <div slot="title">
       <div class="flex-align-center">
-        <p><span style="font-size:14px">订单合计:</span><span style="color:red;font-size:16px;"><b>¥&nbsp;{{tool.formatAmount(data.amount,2)}}</b></span></p>
-        <label style="font-size:14px;margin-left:10px" for="">备注:</label>
-        <input class="order__note__input" v-model="defaultData.remarks" type="text" placeholder="请输入订单备注">
+        <p class="inline-16"><span style="font-size:14px">订单合计:</span><span style="color:red;font-size:16px;"><b>¥&nbsp;{{tool.formatAmount(data.amount,2)}}</b></span></p>
+        <!-- <label style="font-size:14px;margin-left:10px" for="">备注:</label>
+        <input class="order__note__input" v-model="defaultData.remarks" type="text" placeholder="请输入订单备注"> -->
+        <p>运费:{{data.freefreightamount === 0?'当前订单免运费':`订单满${data.freefreightamount}元免运费,当前还差${data.freefreightamount - data.amount}元`}}</p>
       </div>
     </div>
     <div class="drawer__panel">
+      <!-- 项目订单显示信息 -->
+      <div v-if="data.type === '项目订单'" class="reveive__panel normal-margin flex-align-center">
+        <p class="inline-16"><small>项目信息:</small>{{data.projectname}}</p>
+        <p class="inline-16"><small>合同信息:</small>{{data.contract_title}}</p>
+        <p class="inline-16"><small>领域:</small>{{data.tradefield}}</p>
+        <p class="inline-16"><small>品牌:</small>{{data.brandname}}</p>
+      </div>
       <div>
-        <div style="flex:1">
-          <div class="mt-10">
-            <p class="normal-title inline-16">支付信息</p>
+        <div class="mt-10">
+          <p class="normal-title inline-16">支付信息</p>
+        </div>
+        <div class="reveive__panel normal-margin">
+          <p class="flex-align-center"><small>结算企业:&nbsp;</small><b>{{defaultData.finance.enterprisename}}</b>&nbsp;<financeEnterprise v-if="data.type !== '项目订单'" @select="onSelect"></financeEnterprise></p>
+          <div class="flex-align-center">
+            <p class="inline-16"><small>账户余额:&nbsp;</small><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
+            <p class="inline-16"><small>账户名称:&nbsp;</small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</p>
+            <p><small>本单金额:&nbsp;</small>{{tool.formatAmount(data.amount - rebateamount,2)}}</p>
           </div>
-          <div class="reveive__panel normal-margin">
-            <p class="flex-align-center"><small>结算企业:&nbsp;</small><b>{{defaultData.finance.enterprisename}}</b>&nbsp;<financeEnterprise @select="onSelect"></financeEnterprise></p>
-            <div class="flex-align-center">
-              <p class="inline-16"><small>账户余额:&nbsp;</small><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
-              <p class="inline-16"><small>账户名称:&nbsp;</small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</p>
-              <p><small>本单金额:&nbsp;</small>{{tool.formatAmount(data.amount - rebateamount,2)}}</p>
-            </div>
-            <div v-if="(data.type === '标准订单' ||  data.type === '特殊订单') && isusedrebate === 1">
-              <el-checkbox v-model="checked" :true-label="1" :false-label="0">使用返利金</el-checkbox>
-              <div v-if="checked" class="flex-align-center">
-                <p class="inline-16"><b>返利金余额:{{tool.formatAmount(defaultData.rebatebalance,2)}}</b></p>
-                <el-input class="inline-16" size="mini" style="width:150px" v-model="rebateamount" @blur="useRebate" placeholder="输入使用金额"></el-input>
-                <small>(返利金最高使用比例{{data.order_rebate_userate}}%,本单上限:{{tool.formatAmount(data.amount * data.order_rebate_userate / 100,2)}})</small>
-              </div>
+          <div v-if="(data.type === '标准订单' ||  data.type === '特殊订单') && isusedrebate === 1">
+            <el-checkbox v-model="checked" :true-label="1" :false-label="0">使用返利金</el-checkbox>
+            <div v-if="checked" class="flex-align-center">
+              <p class="inline-16"><b>返利金余额:{{tool.formatAmount(defaultData.rebatebalance,2)}}</b></p>
+              <el-input class="inline-16" size="mini" style="width:150px" v-model="rebateamount" @blur="useRebate" placeholder="输入使用金额"></el-input>
+              <small>(返利金最高使用比例{{data.order_rebate_userate}}%,本单上限:{{tool.formatAmount(data.amount * data.order_rebate_userate / 100,2)}})</small>
             </div>
           </div>
         </div>
@@ -136,6 +143,31 @@
         </div>
         
       </div>
+      <div class="normal-margin flex-align-center">
+        <div class="inline-16">
+          <small><b>回签单</b>&nbsp;</small>
+          <el-radio-group v-model="signbackstatus">
+            <el-radio label="不需要">不需要</el-radio>
+            <el-radio label="纸质件">纸质件</el-radio>
+            <el-radio label="扫描件">扫描件</el-radio>
+          </el-radio-group>
+        </div>
+        <div style="margin-left:20px">
+          <small><b>销售类别:</b>&nbsp;</small>
+          <el-select v-model="saletype" size="mini" placeholder="请选择">
+            <el-option
+              v-for="item in saleroptions"
+              :key="item.value"
+              :label="item.value"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+      <div class="normal-margin">
+        <p class="normal-title mt-10 inline-16">订单备注</p>
+        <el-input size="mini" class="order__note__input" type="textarea" v-model="defaultData.remarks" :autosize="{minRows:5}" placeholder="请输入订单备注"></el-input>
+      </div>
       <div class="mt-10">
         <div>
           <p class="normal-title inline-16">订单产品</p>
@@ -185,6 +217,7 @@ export default {
       rebateAccount:[],
       logisticcomlist:[],
       financiallist:[],
+      saleroptions:[],
       defaultData:{
         re_info:{},
         logist_info:{},
@@ -197,7 +230,9 @@ export default {
       total:0,
       setcol:24,
       rebateamount:null,
-      isusedrebate:0
+      isusedrebate:0,
+      signbackstatus:'不需要',
+      saletype:""
     }
   },
   methods:{
@@ -212,11 +247,13 @@ export default {
 
       this.queryUsedrebate()
 
+      this.selectOptions()
+
       this.checked = this.data.rebate_used
       this.rebateamount = this.data.rebateamount
     },
     // 收货信息:合作企业联系人
-    async receiveAddress () {
+    async receiveAddress (fn) {
       const res = await this.$api.requested({
         "id": "20230220002602",
         "content": {
@@ -229,13 +266,16 @@ export default {
       this.receiveAddresslist = res.data
     },
 
-    // 账号信息与结算企业
+    // 设置默认信息
     async setDefaultData () {
       this.defaultData.rebatebalance = this.data.rebatebalance
       this.defaultData.finance = this.data.finance
       this.defaultData.fin_info = this.data.finance
       this.defaultData.accountclass = this.data.accountclass
       this.defaultData.re_info = this.data.contacts
+      this.financiallist = this.data.pay_finance
+      this.saletype = this.data.saletype
+      this.signbackstatus = this.data.signbackstatus
     },
    
     async onSubmit() {
@@ -255,8 +295,10 @@ export default {
           "typemx":this.data.typemx, //明细分类,可选
           "remarks": this.defaultData.remarks, //可选
           // "saler_hrid":this.data.saler_hrid//销售人员hrid,业务员hrid
+          "signbackstatus":this.signbackstatus,
           "pay_enterpriseid":this.data.pay_enterpriseid,
-          "tradefield":this.data.tradefield
+          "tradefield":this.data.tradefield,
+          "saletype":this.saletype,
         },
       })
       this.tool.showMessage(res,()=>{
@@ -333,7 +375,6 @@ export default {
     },
     // 选择结算企业
     onSelect (data) {
-      console.log(data)
       this.defaultData.finance = data
       this.financiallist = data.finance
       data.finance.forEach(e => {
@@ -343,12 +384,13 @@ export default {
           this.defaultData.fin_info = data.finance.length > 0 ?data.finance[0]:{}
         }
       });
-     
     },
+
+    async selectOptions () {
+      const res = await this.$store.dispatch('optiontypeselect','saletype')
+      this.saleroptions = res.data
+    }
   },
-  mounted () {
-    
-  }
 }
 
 </script>

+ 2 - 2
src/SDrpManagement/agentOrder/modules/productlist.vue

@@ -104,9 +104,9 @@
           <p style="color:red;font-weight:500">¥&nbsp;{{tool.formatAmount(scope.row.price * scope.row.qty,2)}}</p>
         </template>
       </el-table-column>
-      <el-table-column width="90" fixed="right">
+      <el-table-column v-if="type === 'edit'" width="90" fixed="right">
         <template slot-scope="scope">
-          <el-button v-if="tool.checkAuth($route.name,'orderDetail')" type="text" size="mini" @click="deleteOrderProduct(scope.row)">删 除</el-button>
+          <el-button type="text" size="mini" @click="deleteOrderProduct(scope.row)">删 除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 252 - 0
src/SDrpManagement/salerOrder/modules/add copy.vue

@@ -0,0 +1,252 @@
+<template>
+  <div>
+    <el-dropdown size="small" split-button type="primary" @command="handleCommand">
+      新 建
+      <el-dropdown-menu slot="dropdown">
+        <el-dropdown-item command="标准订单">标准订单</el-dropdown-item>
+        <el-dropdown-item command="项目订单">项目订单</el-dropdown-item>
+        <el-dropdown-item command="促销订单">促销订单</el-dropdown-item>
+        <el-dropdown-item command="工具订单">工具订单</el-dropdown-item>
+      </el-dropdown-menu>
+    </el-dropdown>
+    <el-drawer
+      title="新建订单"
+      :visible.sync="drawer"
+      direction="rtl"
+      :show-close="false"
+      append-to-body
+      size="800px"
+      @close="refresh">
+      <div class="drawer__panel">
+        <el-row :gutter="15">
+          <el-form size="small" ref="form" :model="form" :rules="rules" label-width="100px" :status-icon="false">
+            <el-col :span="24">
+              <el-form-item label="订单类型" prop="type">
+                <el-input readonly v-model="form.type" placeholder="订单类型" :maxlength="11" clearable :style="{width: '100%'}"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="企业信息" prop="sys_enterpriseid">
+                <enterprise @rowClick="rowClick"></enterprise>
+              </el-form-item>
+            </el-col>
+            <el-col v-if="form.type === '促销订单'" :span="12">
+              <el-form-item label="活动信息" prop="promname">
+                <el-popover
+                  placement="bottom"
+                  trigger="click"
+                  v-model="visible1">
+                  <orderCanUseActivity ref="activity" @rowClick="activityClick"></orderCanUseActivity>
+                  <el-input readonly v-model="form.promname" slot="reference" placeholder="选择活动"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col v-if="form.type === '项目订单'" :span="12">
+              <el-form-item label="项目合同" prop="contractname">
+                <el-popover
+                  placement="bottom"
+                  trigger="click"
+                  v-model="visible">
+                  <orderCanUseContract @rowClick="contractClick"></orderCanUseContract>
+                  <el-input readonly v-model="form.contractname" slot="reference" placeholder="选择合同"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="选择品牌" prop="sa_brandid">
+                <el-select :disabled="form.type === '促销订单'" v-model="form.sa_brandid" placeholder="请选择选择品牌" clearable :style="{width: '100%'}">
+                  <el-option v-for="(item, index) in sa_brandidOptions" :key="index" :label="item.brandname"
+                    :value="item.sa_brandid" :disabled="item.disabled"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="选择领域" prop="tradefield">
+                <el-select :disabled="form.type === '促销订单'" v-model="form.tradefield" placeholder="请选择选择领域" clearable :style="{width: '100%'}">
+                  <el-option v-for="(item, index) in tradefieldOptions" :key="index" :label="item.tradefield"
+                    :value="item.tradefield" :disabled="item.disabled"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button class="normal-btn-width" type="primary" size="small" @click="submitForm">创 建</el-button>
+        <el-button class="normal-btn-width" size="small" @click="resetForm">重 置</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import enterprise from '@/template/enterprise/index.vue'
+import orderCanUseContract from '@/template/orderCanUseContract/index.vue'
+import orderCanUseActivity from '@/template/orderCanUseActivity/index.vue'
+
+export default {
+  data () {
+    return {
+      drawer:false,
+      visible:false,
+      visible1:false,
+      form:{
+        "sa_orderid": 0,
+        "sys_enterpriseid":'',
+        "sa_accountclassid": 0, //营销账户类型ID
+        "sa_brandid": "", //品牌ID
+        "sa_contractid": 0, //合同ID,标准订单不传
+        "sa_projectid": 0, //工程项目表ID,标准订单不传
+        "sys_enterprise_financeid": 0, //合作企业财务信息ID(开票信息)
+        "sa_logiscompid": 0, //物流公司档案ID
+        "rec_contactsid": 0, //合作企业联系人表ID(收货信息)
+        "type": "", //订单类型
+        "typemx": "", //明细分类,可选
+        "remarks": "", //可选
+        "saler_hrid":0,//销售人员hrid,业务员hrid
+        "tradefield":"",//必选
+        "pay_enterpriseid": 0, //结算单位
+        "rebate_used":0,//默认0,是否使用返利金
+        "billdate":"",//单据日期,默认创建日期
+        "signbacknum":""
+      },
+      rules: {
+        sa_brandid: [{
+          required: true,
+          message: '请选择选择品牌',
+          trigger: 'change'
+        }],
+        tradefield: [{
+          required: true,
+          message: '请选择选择领域',
+          trigger: 'change'
+        }],
+        typemx: [{
+          required: true,
+          message: '请选择选子分类',
+          trigger: 'change'
+        }],
+        sys_enterpriseid:[{
+          required: true,
+          message: '订货企业不能为空',
+          trigger: 'blur'
+        }],
+        contractname:[{
+          required: true,
+          message: '项目不能为空',
+          trigger: 'blur'
+        }]
+      },
+      sa_brandidOptions: [],
+      tradefieldOptions: [],
+      typemxlist:[]
+    }
+  },
+  components:{
+    enterprise,
+    orderCanUseContract,
+    orderCanUseActivity
+  },
+  methods:{
+    handleCommand (command) {
+      this.drawer = true
+      this.form.type = command
+      this.pageData()
+      this.specordermx()
+    },
+    submitForm() {
+      console.log(this.form)
+      this.$refs['form'].validate(async valid => {
+        if (!valid) return
+        const res = await this.$api.requested({
+          "id": 20221108111402,
+          "content":this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.drawer = false
+          this.$store.dispatch('changeDetailDrawer',true)
+          this.$router.push({path:'/orderdetail',query:{id:res.data.sa_orderid,rowindex:res.data.rowindex}})
+        })
+      })
+    },
+    async specordermx () {
+      const res = await this.$store.dispatch('optiontypeselect','specordermx')
+      this.typemxlist = res.data
+    },
+    resetForm() {
+      this.$refs['form'].resetFields()
+    },
+    async pageData () {
+      const res = await this.$api.requested({
+        "id": 20220924163702,
+        "content": {
+          "pageSize": 999,
+        }
+      })
+      this.sa_brandidOptions = res.data
+
+      const res1 = await this.$api.requested({
+        "id": 20221223141802,
+        "content": {
+          "pageSize": 999,
+        }
+      })
+      this.tradefieldOptions = res1.data
+    },
+    rowClick (row) {
+      this.form.sys_enterpriseid = row.sys_enterpriseid
+      this.form.type === '促销订单'?this.$refs['activity'].listData(row.sys_enterpriseid):''
+      this.form.type === '促销订单'?this.activityClick({}):''
+    },
+    contractClick (row) {
+      this.form.sa_contractid = row.sa_contractid
+      this.form.sa_projectid = row.sa_projectid
+      this.form.contractname = row.title === ''?'未知':row.title
+      this.visible = false
+    },
+    activityClick (row) {
+      this.form.sa_promotionid = row.sa_promotionid
+      this.form.promname = row.promname
+      this.form.tradefield = row.tradefield
+      this.form.sa_brandid = row.sa_brandid
+      if (row.tradefield) {
+      let arr = []
+        arr = this.tradefieldOptions.filter(e=>{
+          if (e.tradefield === row.tradefield) {
+            return e
+          }
+        })
+        this.childField = arr[0].subvalues
+      }
+      this.$refs['form'].validate()
+      this.visible1 = false
+    },
+    refresh () {
+      this.form = {
+        "sa_orderid": 0,
+        "sys_enterpriseid": 0, //订货企业id,可不传,默认取当前账号的
+        "sa_accountclassid": 0, //营销账户类型ID
+        "sa_brandid": "", //品牌ID
+        "sa_contractid": 0, //合同ID,标准订单不传
+        "sa_projectid": 0, //工程项目表ID,标准订单不传
+        "sys_enterprise_financeid": 0, //合作企业财务信息ID(开票信息)
+        "sa_logiscompid": 0, //物流公司档案ID
+        "rec_contactsid": 0, //合作企业联系人表ID(收货信息)
+        "type": "", //订单类型
+        "typemx": "", //明细分类,可选
+        "remarks": "", //可选
+        "saler_hrid":0,//销售人员hrid,业务员hrid
+        "tradefield":"",//必选
+        "pay_enterpriseid": 0, //结算单位
+        "rebate_used":0,//默认0,是否使用返利金
+        "billdate":"",//单据日期,默认创建日期
+        "signbacknum":""
+      }
+      this.visible1 = false
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 80 - 26
src/SDrpManagement/salerOrder/modules/add.vue

@@ -4,6 +4,7 @@
       新 建
       <el-dropdown-menu slot="dropdown">
         <el-dropdown-item command="标准订单">标准订单</el-dropdown-item>
+        <el-dropdown-item command="特殊订单">特殊订单</el-dropdown-item>
         <el-dropdown-item command="项目订单">项目订单</el-dropdown-item>
         <el-dropdown-item command="促销订单">促销订单</el-dropdown-item>
         <el-dropdown-item command="工具订单">工具订单</el-dropdown-item>
@@ -19,15 +20,15 @@
       @close="refresh">
       <div class="drawer__panel">
         <el-row :gutter="15">
-          <el-form size="small" ref="form" :model="form" :rules="rules" label-width="100px" :status-icon="false">
+          <el-form size="small" ref="form" :model="form" :rules="rules" label-width="110px" :status-icon="false">
             <el-col :span="24">
               <el-form-item label="订单类型" prop="type">
                 <el-input readonly v-model="form.type" placeholder="订单类型" :maxlength="11" clearable :style="{width: '100%'}"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
-              <el-form-item label="企业信息" prop="sys_enterpriseid">
-                <enterprise @rowClick="rowClick"></enterprise>
+            <el-col :span="12" v-if="form.type !== '项目订单'">
+              <el-form-item label="选择经销商" prop="sys_enterpriseid">
+                <agent ref="enterprise" ismanage="0" @rowClick="rowClick"></agent>
               </el-form-item>
             </el-col>
             <el-col v-if="form.type === '促销订单'" :span="12">
@@ -42,29 +43,45 @@
               </el-form-item>
             </el-col>
             <el-col v-if="form.type === '项目订单'" :span="12">
-              <el-form-item label="项目合同" prop="contractname">
+              <el-form-item label="项目合同" prop="sa_contractid">
                 <el-popover
                   placement="bottom"
                   trigger="click"
                   v-model="visible">
-                  <orderCanUseContract @rowClick="contractClick"></orderCanUseContract>
+                  <orderCanUseContract ref="contract" @listCreate="listCreate" ismanage="0" @rowClick="contractClick"></orderCanUseContract>
                   <el-input readonly v-model="form.contractname" slot="reference" placeholder="选择合同"></el-input>
                 </el-popover>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col v-if="form.type === '特殊订单'" :span="12">
+              <el-form-item label="特殊订单分类" prop="typemx">
+                <el-select v-model="form.typemx" placeholder="请选择特殊订单分类" clearable :style="{width: '100%'}">
+                  <el-option v-for="(item, index) in typemxlist" :key="index" :label="item.value"
+                    :value="item.value"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-if="form.type !=='工具订单' && form.type !=='项目订单'">
               <el-form-item label="选择品牌" prop="sa_brandid">
-                <el-select :disabled="form.type === '促销订单'" v-model="form.sa_brandid" placeholder="请选择选择品牌" clearable :style="{width: '100%'}">
+                <el-select :disabled="form.type==='促销订单'" v-model="form.sa_brandid" placeholder="请选择选择品牌" clearable :style="{width: '100%'}">
                   <el-option v-for="(item, index) in sa_brandidOptions" :key="index" :label="item.brandname"
                     :value="item.sa_brandid" :disabled="item.disabled"></el-option>
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="12"  v-if="form.type !=='工具订单' && form.type !=='项目订单'">
               <el-form-item label="选择领域" prop="tradefield">
-                <el-select :disabled="form.type === '促销订单'" v-model="form.tradefield" placeholder="请选择选择领域" clearable :style="{width: '100%'}">
+                <el-select :disabled="form.type==='促销订单'" v-model="form.tradefield" placeholder="请选择选择领域" clearable :style="{width: '100%'}">
                   <el-option v-for="(item, index) in tradefieldOptions" :key="index" :label="item.tradefield"
-                    :value="item.tradefield" :disabled="item.disabled"></el-option>
+                    :value="item.tradefield" @click.native="setChildField(item)"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12"  v-if="form.type !=='工具订单' && form.type !=='项目订单'">
+              <el-form-item label="领域明细">
+                <el-select v-model="form.tradefieldmx" placeholder="请选择领域明细" clearable :style="{width: '100%'}">
+                  <el-option v-for="(item, index) in childField" :key="index" :label="item"
+                    :value="item"></el-option>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -80,7 +97,9 @@
 </template>
 
 <script>
-import enterprise from '@/template/enterprise/index.vue'
+import agent from '@/template/orderAddCanUseAgent/index.vue'
+import enterprise from '@/template/orderAddCanUseEnterprise/index.vue'
+
 import orderCanUseContract from '@/template/orderCanUseContract/index.vue'
 import orderCanUseActivity from '@/template/orderCanUseActivity/index.vue'
 
@@ -92,7 +111,7 @@ export default {
       visible1:false,
       form:{
         "sa_orderid": 0,
-        "sys_enterpriseid":'',
+        "sys_enterpriseid": 0, //订货企业id,可不传,默认取当前账号的
         "sa_accountclassid": 0, //营销账户类型ID
         "sa_brandid": "", //品牌ID
         "sa_contractid": 0, //合同ID,标准订单不传
@@ -103,12 +122,12 @@ export default {
         "type": "", //订单类型
         "typemx": "", //明细分类,可选
         "remarks": "", //可选
-        "saler_hrid":0,//销售人员hrid,业务员hrid
         "tradefield":"",//必选
         "pay_enterpriseid": 0, //结算单位
         "rebate_used":0,//默认0,是否使用返利金
         "billdate":"",//单据日期,默认创建日期
-        "signbacknum":""
+        "signbacknum":"",
+        "promname":""
       },
       rules: {
         sa_brandid: [{
@@ -128,31 +147,57 @@ export default {
         }],
         sys_enterpriseid:[{
           required: true,
-          message: '订货企业不能为空',
+          message: '订货经销商不能为空',
           trigger: 'blur'
         }],
-        contractname:[{
+        sa_contractid:[{
           required: true,
           message: '项目不能为空',
           trigger: 'blur'
-        }]
+        }],
+        promname:[{
+          required: true,
+          message: '活动不能为空',
+          trigger: 'blur'
+        }],
       },
       sa_brandidOptions: [],
       tradefieldOptions: [],
-      typemxlist:[]
+      typemxlist:[],
+      childField:[]
     }
   },
   components:{
+    agent,
     enterprise,
     orderCanUseContract,
     orderCanUseActivity
   },
+  watch: {
+    drawer (val) {
+      if (!val) {
+        this.refresh()
+        this.$refs.form.resetFields()
+      }
+    }
+  },
   methods:{
-    handleCommand (command) {
-      this.drawer = true
+    async handleCommand (command) {
       this.form.type = command
-      this.pageData()
-      this.specordermx()
+      if (command === '工具订单') {
+        const res = await this.$api.requested({
+          "id": 20221108111402,
+          "content":this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$store.dispatch('changeDetailDrawer',true)
+          this.$router.push({path:'/orderdetail',query:{id:res.data.sa_orderid,rowindex:res.data.rowindex}})
+        })
+      } else {
+        this.drawer = true
+        this.specordermx()
+      }
+     
     },
     submitForm() {
       console.log(this.form)
@@ -180,23 +225,28 @@ export default {
       const res = await this.$api.requested({
         "id": 20220924163702,
         "content": {
-          "pageSize": 999,
+          "sys_enterpriseid": this.form.sys_enterpriseid,
         }
       })
       this.sa_brandidOptions = res.data
 
       const res1 = await this.$api.requested({
-        "id": 20221223141802,
+        "id": 20230219212802,
         "content": {
-          "pageSize": 999,
+          "sys_enterpriseid": this.form.sys_enterpriseid,
         }
       })
       this.tradefieldOptions = res1.data
     },
     rowClick (row) {
+      console.log(row)
       this.form.sys_enterpriseid = row.sys_enterpriseid
       this.form.type === '促销订单'?this.$refs['activity'].listData(row.sys_enterpriseid):''
       this.form.type === '促销订单'?this.activityClick({}):''
+      this.pageData()
+    },
+    listCreate (param) {
+      param.content.sys_enterpriseid = this.form.sys_enterpriseid
     },
     contractClick (row) {
       this.form.sa_contractid = row.sa_contractid
@@ -204,6 +254,10 @@ export default {
       this.form.contractname = row.title === ''?'未知':row.title
       this.visible = false
     },
+    setChildField (item) {
+      console.log(item)
+      this.childField = item.subvalues
+    },
     activityClick (row) {
       this.form.sa_promotionid = row.sa_promotionid
       this.form.promname = row.promname

+ 436 - 0
src/SDrpManagement/salerOrder/modules/edit copy.vue

@@ -0,0 +1,436 @@
+<template>
+  <div>
+    <el-button :disabled="data.status !=='新建'" type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button>
+    <el-drawer
+    :visible.sync="drawer"
+    direction="rtl"
+    append-to-body
+    size="80%">
+    <div slot="title">
+      <div class="flex-align-center">
+        <p><span style="font-size:14px">订单合计:</span><span style="color:red;font-size:16px;"><b>¥&nbsp;{{tool.formatAmount(data.amount,2)}}</b></span></p>
+        <label style="font-size:14px;margin-left:10px" for="">备注:</label>
+        <input class="order__note__input" v-model="defaultData.remarks" type="text" placeholder="请输入订单备注">
+      </div>
+    </div>
+    <div class="drawer__panel">
+      <div>
+        <div class="mt-10">
+          <p class="normal-title inline-16">选择账户</p>
+          <el-popover
+            placement="bottom"
+            title="选择账户"
+            trigger="click"
+            v-model="visible3">
+            <el-table
+              :data="accountlist"
+              style="width: 100%"
+              size="mini">
+              <el-table-column
+                prop="accountname"
+                label="账户名称"
+                width="120">
+              </el-table-column>
+              <el-table-column
+                prop="balance"
+                label="账户余额"
+                width="120">
+                <template slot-scope="scope">
+                  ¥{{tool.formatAmount(scope.row.balance,2)}}
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="操作"
+                width="90">
+                <template slot-scope="scope">
+                  <el-button type="text" @click="(defaultData.accountclass = scope.row,visible3 = false)" size="mini">选 择</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-button slot="reference" type="text" size="mini">选择其他账户</el-button>
+          </el-popover>
+        </div>
+        <div class="reveive__panel normal-margin">
+          <p><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
+          <small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</small>
+          <div v-if="(data.type === '标准订单' ||  data.type === '特殊订单') && isusedrebate === 1">
+            <el-checkbox v-model="checked" :true-label="1" :false-label="0">使用返利金</el-checkbox>
+            <div v-if="checked" class="flex-align-center">
+              <p class="inline-16"><b>返利金余额:{{tool.formatAmount(rebateAccount[0]?rebateAccount[0].balance:0,2)}}</b></p>
+              <el-input class="inline-16" size="mini" style="width:150px" v-model="rebateamount" @blur="useRebate" placeholder="输入使用金额"></el-input>
+              <small>(返利金最高使用比例{{data.order_rebate_userate}}%)</small>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex-align-center normal-margin">
+        <div slot="flex:1;margin-right:10px">
+          <div class="mt-10">
+            <p class="normal-title inline-16">选择财务信息</p>
+            <el-popover
+              placement="bottom"
+              title="选择财务信息"
+              trigger="click"
+              v-model="visible2">
+              <el-table
+                :data="financiallist"
+                style="width: 100%"
+                size="mini">
+                <el-table-column
+                  prop="enterprisename"
+                  label="公司抬头"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  prop="address"
+                  label="开票地址"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  prop="bank"
+                  label="开户行"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  prop="bankcardno"
+                  label="开户账号"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="90">
+                  <template slot-scope="scope">
+                    <el-button type="text" @click="(defaultData.fin_info = scope.row,visible2 = false)" size="mini">选 择</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-button slot="reference" type="text" size="mini">选择其他</el-button>
+            </el-popover>
+          </div>
+          <div class="reveive__panel normal-margin">
+            <p><small>抬头:&nbsp;</small><span class="inline-16"><b>{{defaultData.fin_info.enterprisename}}</b></span></p>
+            <div class="flex-align-center">
+              <p class="inline-16"><small>开票地址:&nbsp;</small>{{defaultData.fin_info.address?defaultData.fin_info.address:'--'}}</p>
+              <p><small>开户行:&nbsp;</small> {{defaultData.fin_info.bank}} &emsp;<small>开户账号:&nbsp;</small> {{defaultData.fin_info.bankcardno}}</p>
+            </div>
+          </div>
+        </div>
+        <div style="flex:1;">
+          <div class="mt-10">
+            <p class="normal-title inline-16">收货信息</p>
+            <el-popover
+              placement="bottom"
+              title="选择地址"
+              trigger="click"
+              v-model="visible">
+              <el-table
+                :data="receiveAddresslist"
+                style="width: 100%"
+                size="mini">
+                <el-table-column
+                  prop="name"
+                  label="联系人"
+                  width="90">
+                </el-table-column>
+                <el-table-column
+                  prop="phonenumber"
+                  label="电话"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  label="地址"
+                  width="360">
+                  <template slot-scope="scope">
+                    {{scope.row.province}}{{scope.row.city}}{{scope.row.county}}{{scope.row.address}}
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="90">
+                  <template slot-scope="scope">
+                    <el-button type="text" @click="(defaultData.re_info = scope.row,visible = false)" size="mini">选 择</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-button slot="reference" type="text" size="mini">选择其他地址</el-button>
+            </el-popover>
+          </div>
+          <div class="reveive__panel normal-margin">
+            <p><span class="inline-16"><b>{{defaultData.re_info.name}}</b></span><small>{{defaultData.re_info.phonenumber}}</small></p>
+            <small>{{defaultData.re_info.province}}{{defaultData.re_info.city}}{{defaultData.re_info.county}}{{defaultData.re_info.address?defaultData.re_info.address:'--'}}</small>
+          </div>
+        </div>
+      </div>
+      <div class="mt-10">
+        <div>
+          <p class="normal-title inline-16">订单产品</p>
+          <el-button type="text" size="mini" @click="addMoreProduct">{{setcol === 12?'关闭选择':'添加产品'}}</el-button>
+        </div>
+        <el-row :gutter="10">
+          <el-col :span="setcol">
+            <product-list ref="prolist" :data="data" :type="'edit'" @onSuccess="onEditSuccess"></product-list>
+          </el-col>
+          <el-col :span="24 - setcol">
+            <add-product ref="addpro" @onConfirm="onConfirm"></add-product>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <div class="fixed__btn__panel">
+      <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
+      <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">保存修改</el-button>
+    </div>
+  </el-drawer>
+  </div>
+</template>
+
+<script>
+import previewImage from '@/components/previewImage/index.vue'
+import productList from './productlist.vue'
+import addProduct from '@/template/orderCanUseProduct/index.vue'
+export default {
+  props:['data'],
+  components:{
+    previewImage,
+    productList,
+    addProduct
+  },
+  data () {
+    return {
+      visible:false,
+      visible1:false,
+      visible2:false,
+      visible3:false,
+      drawer:false,
+      receiveAddresslist:[],
+      accountlist:[],
+      logisticcomlist:[],
+      financiallist:[],
+      defaultData:{
+        re_info:{},
+        logist_info:{},
+        fin_info:{},
+        accountclass:{},
+        account_index:0,
+        remarks:this.data.remarks
+      },
+      agnetInfo:{},
+      total:0,
+      setcol:24,
+      rebateamount:null,
+      isusedrebate:0,
+      checked:false,
+      rebateAccount:[]
+    }
+  },
+  methods:{
+    onShow () {
+      this.queryAgentiInfo()
+    },
+    async queryAgentiInfo () {
+      const res = await this.$api.requested({
+        "id": "20221022165203",
+        "content": {
+          sys_enterpriseid:this.data.sys_enterpriseid
+        }
+      })
+      this.agnetInfo = res.data
+
+      this.receiveAddress()
+
+      this.queryAccount()
+
+      this.queryLogisticcom()
+
+      this.queryFinancial()
+      this.queryUsedrebate()
+      this.checked = this.data.rebate_used
+      this.rebateamount = this.data.rebateamount
+    },
+    // 收货信息:合作企业联系人
+    async receiveAddress () {
+      const res = await this.$api.requested({
+        "id": "20221009155803",
+        "content": {
+        "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
+          "where":{
+            "condition":"",
+            "workaddress":0
+          }
+        }
+      })
+      this.receiveAddresslist = res.data
+      this.defaultData.re_info = res.data[0]
+      
+    },
+
+    // 账号信息
+    async queryAccount () {
+      const res = await this.$api.requested({
+        "id": "20221008134803",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 100,
+          "where":{
+            "isused":1
+          }
+        }
+      })
+      this.accountlist = res.data.filter(e=>{
+        return e.isrebate !== 1
+      })
+      this.rebateAccount = res.data.filter(e=>{
+        return e.isrebate === 1
+      })
+      this.defaultData.accountclass = this.data.accountclass
+    },
+
+    // 物流企业
+    async queryLogisticcom () {
+      const res = await this.$api.requested({
+        "id": "20221121135804",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 100
+        }
+      })
+      this.logisticcomlist = res.data
+      this.defaultData.logist_info = this.data.logiscomp
+    },
+    // 财务信息
+    async queryFinancial () {
+      const res = await this.$api.requested({
+        "id": "20221013160602",
+        "content": {
+          "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
+          "pageNumber": 1,
+          "pageSize": 100
+        }
+      })
+      this.financiallist = res.data
+      this.defaultData.fin_info = this.data.finance
+    },
+    async onSubmit() {
+      const res = await this.$api.requested({
+        "id": 20221108111402,
+        "content": {
+          "sa_orderid": this.$route.query.id,
+          "sys_enterpriseid": this.defaultData.sys_enterpriseid, //订货企业id
+          "sa_accountclassid": this.defaultData.accountclass.sa_accountclassid, //营销账户类型ID
+          "sa_brandid": this.data.sa_brandid, //品牌ID
+          // "sa_contractid":this.data.sa_contractid, //合同ID,标准订单不传
+          // "sa_projectid": this.data.sa_projectid, //工程项目表ID,标准订单不传
+          "sys_enterprise_financeid": this.defaultData.fin_info.sys_enterprise_financeid, //合作企业财务信息ID(开票信息)
+          "sa_logiscompid": this.defaultData.logist_info.sa_logiscompid, //物流公司档案ID
+          "rec_contactsid": this.defaultData.re_info.contactsid, //合作企业联系人表ID(收货信息)
+          "type": this.data.type, //订单类型
+          "typemx":this.data.typemx, //明细分类,可选
+          "remarks": this.defaultData.remarks, //可选
+          // "saler_hrid":this.data.saler_hrid//销售人员hrid,业务员hrid
+          "pay_enterpriseid":this.data.pay_enterpriseid,
+          "tradefield":this.data.tradefield
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit('onSuccess')
+        this.useRebate()
+        this.drawer = false
+      })
+    },
+    onEditSuccess () {
+      this.$refs.addpro.listData()
+    },
+    addMoreProduct () {
+      this.setcol === 12?this.setcol = 24 : this.setcol = 12
+    },
+    // 订单添加商品
+    async onConfirm (data) {
+      const res = await this.$api.requested({
+        "id": 20221109093602,
+        "content": {
+          "sa_orderid": this.$route.query.id, //订单ID
+          "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+          "type": "标准订单", //订单类型
+          "items": data.map(e=>{
+            return {
+              sa_orderitemsid:0,
+              itemid:e.itemid,
+              qty:e.orderminqty,
+              needdate:e.deliverydate
+            }
+          })
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.setcol = 24
+        this.$refs['prolist'].listData()
+      })
+    },
+    async useRebate () {
+      if (this.rebateamount == null) return this.$message({
+          message:"返利金不能为空",
+          type:'error'
+        })
+      const res = await this.$api.requested({
+        "id": 20230218225002,
+        "content": {
+          "sa_orderid": this.data.sa_orderid, //订单金额
+          "isused": this.checked, //是否使用
+          "rebateamount": this.rebateamount //返利金使用金额
+        },
+      })
+      if (res.code === 0) this.$message({
+        message:`使用返利金失败!${res.msg}`,
+        type:'error'
+      })
+    },
+    // 查询站点是否使用返利金
+    async queryUsedrebate () {
+      const res = await this.$api.requested({
+         "classname": "webmanage.site.site",
+        "method": "querySite_Parameter",
+        "content": {
+        }
+      })
+      this.isusedrebate = res.data.order_rebate_used
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.reveive__panel{
+  font-size: 14px;
+  line-height: 30px;
+  padding: 10px;
+  background: #d9ecff;
+  border: 1px dashed #0676e7;
+}
+.account__panel small,.reveive__panel small{
+  color:#666
+}
+.account__panel{
+  width: calc(25% - 26px);
+  padding: 10px;
+  margin-bottom:10px;
+  border: 1px dashed #666;
+}
+.act{
+  background: #d9ecff;
+  border: 1px dashed #0676e7;
+}
+.image {
+  width:40px;height:40px;margin:0px auto;
+}
+.order__note__input{
+  border: none;
+  outline: none;
+  /* margin-left: 10px; */
+  /* border-bottom: 1px solid #f1f2f3; */
+  flex:1
+}
+</style>

+ 112 - 118
src/SDrpManagement/salerOrder/modules/edit.vue

@@ -1,6 +1,7 @@
 <template>
   <div>
-    <el-button :disabled="data.status !=='新建'" type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button>
+    <!-- <el-button :disabled="data.status !=='新建'" type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button> -->
+    <el-button type="primary" size="mini" @click="onShow(drawer = true)">编 辑</el-button>
     <el-drawer
     :visible.sync="drawer"
     direction="rtl"
@@ -9,62 +10,42 @@
     <div slot="title">
       <div class="flex-align-center">
         <p><span style="font-size:14px">订单合计:</span><span style="color:red;font-size:16px;"><b>¥&nbsp;{{tool.formatAmount(data.amount,2)}}</b></span></p>
-        <label style="font-size:14px;margin-left:10px" for="">备注:</label>
-        <input class="order__note__input" v-model="defaultData.remarks" type="text" placeholder="请输入订单备注">
+        <!-- <label style="font-size:14px;margin-left:10px" for="">备注:</label>
+        <input class="order__note__input" v-model="defaultData.remarks" type="text" placeholder="请输入订单备注"> -->
+         <p>运费:{{data.freefreightamount === 0?'当前订单免运费':`订单满${data.freefreightamount}元免运费,当前还差${data.freefreightamount - data.amount}元`}}</p>
       </div>
     </div>
     <div class="drawer__panel">
+      <!-- 项目订单显示信息 -->
+      <div v-if="data.type === '项目订单'" class="reveive__panel normal-margin flex-align-center">
+        <p class="inline-16"><small>项目信息:</small>{{data.projectname}}</p>
+        <p class="inline-16"><small>合同信息:</small>{{data.contract_title}}</p>
+        <p class="inline-16"><small>领域:</small>{{data.tradefield}}</p>
+        <p class="inline-16"><small>品牌:</small>{{data.brandname}}</p>
+      </div>
       <div>
         <div class="mt-10">
-          <p class="normal-title inline-16">选择账户</p>
-          <el-popover
-            placement="bottom"
-            title="选择账户"
-            trigger="click"
-            v-model="visible3">
-            <el-table
-              :data="accountlist"
-              style="width: 100%"
-              size="mini">
-              <el-table-column
-                prop="accountname"
-                label="账户名称"
-                width="120">
-              </el-table-column>
-              <el-table-column
-                prop="balance"
-                label="账户余额"
-                width="120">
-                <template slot-scope="scope">
-                  ¥{{tool.formatAmount(scope.row.balance,2)}}
-                </template>
-              </el-table-column>
-              <el-table-column
-                label="操作"
-                width="90">
-                <template slot-scope="scope">
-                  <el-button type="text" @click="(defaultData.accountclass = scope.row,visible3 = false)" size="mini">选 择</el-button>
-                </template>
-              </el-table-column>
-            </el-table>
-            <el-button slot="reference" type="text" size="mini">选择其他账户</el-button>
-          </el-popover>
+          <p class="normal-title inline-16">支付信息</p>
         </div>
         <div class="reveive__panel normal-margin">
-          <p><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
-          <small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</small>
+          <p class="flex-align-center"><small>结算企业:&nbsp;</small><b>{{defaultData.finance.enterprisename}}</b>&nbsp;<financeEnterprise v-if="data.type !== '项目订单'" @select="onSelect"></financeEnterprise></p>
+          <div class="flex-align-center">
+            <p class="inline-16"><small>账户余额:&nbsp;</small><b>¥{{tool.formatAmount(defaultData.accountclass.balance?defaultData.accountclass.balance:0,2)}}</b></p>
+            <p class="inline-16"><small>账户名称:&nbsp;</small>{{defaultData.accountclass.accountname?defaultData.accountclass.accountname:'未选择账户'}}</p>
+            <p><small>本单金额:&nbsp;</small>{{tool.formatAmount(data.amount - rebateamount,2)}}</p>
+          </div>
           <div v-if="(data.type === '标准订单' ||  data.type === '特殊订单') && isusedrebate === 1">
             <el-checkbox v-model="checked" :true-label="1" :false-label="0">使用返利金</el-checkbox>
             <div v-if="checked" class="flex-align-center">
-              <p class="inline-16"><b>返利金余额:{{tool.formatAmount(rebateAccount[0]?rebateAccount[0].balance:0,2)}}</b></p>
+              <p class="inline-16"><b>返利金余额:{{tool.formatAmount(defaultData.rebatebalance,2)}}</b></p>
               <el-input class="inline-16" size="mini" style="width:150px" v-model="rebateamount" @blur="useRebate" placeholder="输入使用金额"></el-input>
-              <small>(返利金最高使用比例{{data.order_rebate_userate}}%)</small>
+              <small>(返利金最高使用比例{{data.order_rebate_userate}}%,本单上限:{{tool.formatAmount(data.amount * data.order_rebate_userate / 100,2)}})</small>
             </div>
           </div>
         </div>
       </div>
       <div class="flex-align-center normal-margin">
-        <div slot="flex:1;margin-right:10px">
+        <div style="flex:1; margin-right:10px">
           <div class="mt-10">
             <p class="normal-title inline-16">选择财务信息</p>
             <el-popover
@@ -157,9 +138,35 @@
           </div>
           <div class="reveive__panel normal-margin">
             <p><span class="inline-16"><b>{{defaultData.re_info.name}}</b></span><small>{{defaultData.re_info.phonenumber}}</small></p>
-            <small>{{defaultData.re_info.province}}{{defaultData.re_info.city}}{{defaultData.re_info.county}}{{defaultData.re_info.address?defaultData.re_info.address:'--'}}</small>
+            <small>{{defaultData.re_info.province?defaultData.re_info.province:'--'}}{{defaultData.re_info.city}}{{defaultData.re_info.county}}{{defaultData.re_info.address?defaultData.re_info.address:''}}</small>
           </div>
         </div>
+        
+      </div>
+      <div class="normal-margin flex-align-center">
+        <div class="inline-16">
+          <small><b>回签单</b>&nbsp;</small>
+          <el-radio-group v-model="signbackstatus">
+            <el-radio label="不需要">不需要</el-radio>
+            <el-radio label="纸质件">纸质件</el-radio>
+            <el-radio label="扫描件">扫描件</el-radio>
+          </el-radio-group>
+        </div>
+        <div style="margin-left:20px">
+          <small><b>销售类别:</b>&nbsp;</small>
+          <el-select v-model="saletype" size="mini" placeholder="请选择">
+            <el-option
+              v-for="item in saleroptions"
+              :key="item.value"
+              :label="item.value"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+      <div class="normal-margin">
+        <p class="normal-title mt-10 inline-16">订单备注</p>
+        <el-input size="mini" class="order__note__input" type="textarea" v-model="defaultData.remarks" :autosize="{minRows:5}" placeholder="请输入订单备注"></el-input>
       </div>
       <div class="mt-10">
         <div>
@@ -171,7 +178,7 @@
             <product-list ref="prolist" :data="data" :type="'edit'" @onSuccess="onEditSuccess"></product-list>
           </el-col>
           <el-col :span="24 - setcol">
-            <add-product ref="addpro" @onConfirm="onConfirm"></add-product>
+            <add-product ref="addpro" :data="data" @onConfirm="onConfirm"></add-product>
           </el-col>
         </el-row>
       </div>
@@ -188,15 +195,18 @@
 import previewImage from '@/components/previewImage/index.vue'
 import productList from './productlist.vue'
 import addProduct from '@/template/orderCanUseProduct/index.vue'
+import financeEnterprise from '@/template/orderCanUseFinance/index.vue'
 export default {
   props:['data'],
   components:{
     previewImage,
     productList,
-    addProduct
+    addProduct,
+    financeEnterprise
   },
   data () {
     return {
+      checked:0,
       visible:false,
       visible1:false,
       visible2:false,
@@ -204,112 +214,70 @@ export default {
       drawer:false,
       receiveAddresslist:[],
       accountlist:[],
+      rebateAccount:[],
       logisticcomlist:[],
       financiallist:[],
+      saleroptions:[],
       defaultData:{
         re_info:{},
         logist_info:{},
         fin_info:{},
+        finance:{},
         accountclass:{},
         account_index:0,
         remarks:this.data.remarks
       },
-      agnetInfo:{},
       total:0,
       setcol:24,
       rebateamount:null,
       isusedrebate:0,
-      checked:false,
-      rebateAccount:[]
+      signbackstatus:'不需要',
+      saletype:""
     }
   },
   methods:{
     onShow () {
-      this.queryAgentiInfo()
+      this.initPage()
     },
-    async queryAgentiInfo () {
-      const res = await this.$api.requested({
-        "id": "20221022165203",
-        "content": {
-          sys_enterpriseid:this.data.sys_enterpriseid
-        }
-      })
-      this.agnetInfo = res.data
+    async initPage () {
+
+      this.setDefaultData()
 
       this.receiveAddress()
 
-      this.queryAccount()
+      this.queryUsedrebate()
 
-      this.queryLogisticcom()
+      this.selectOptions()
 
-      this.queryFinancial()
-      this.queryUsedrebate()
       this.checked = this.data.rebate_used
       this.rebateamount = this.data.rebateamount
     },
     // 收货信息:合作企业联系人
-    async receiveAddress () {
+    async receiveAddress (fn) {
       const res = await this.$api.requested({
-        "id": "20221009155803",
+        "id": "20230220002602",
         "content": {
-        "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
-          "where":{
-            "condition":"",
-            "workaddress":0
+          "pageSize":100,
+          "where": {
+              "condition": ""
           }
-        }
+        },
       })
       this.receiveAddresslist = res.data
-      this.defaultData.re_info = res.data[0]
-      
     },
 
-    // 账号信息
-    async queryAccount () {
-      const res = await this.$api.requested({
-        "id": "20221008134803",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 100,
-          "where":{
-            "isused":1
-          }
-        }
-      })
-      this.accountlist = res.data.filter(e=>{
-        return e.isrebate !== 1
-      })
-      this.rebateAccount = res.data.filter(e=>{
-        return e.isrebate === 1
-      })
-      this.defaultData.accountclass = this.data.accountclass
-    },
-
-    // 物流企业
-    async queryLogisticcom () {
-      const res = await this.$api.requested({
-        "id": "20221121135804",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 100
-        }
-      })
-      this.logisticcomlist = res.data
-      this.defaultData.logist_info = this.data.logiscomp
-    },
-    // 财务信息
-    async queryFinancial () {
-      const res = await this.$api.requested({
-        "id": "20221013160602",
-        "content": {
-          "sys_enterpriseid":this.agnetInfo.sys_enterpriseid,
-          "pageNumber": 1,
-          "pageSize": 100
-        }
-      })
-      this.financiallist = res.data
+    // 设置默认信息
+    async setDefaultData () {
+      this.defaultData.rebatebalance = this.data.rebatebalance
+      this.defaultData.finance = this.data.finance
       this.defaultData.fin_info = this.data.finance
+      this.defaultData.accountclass = this.data.accountclass
+      this.defaultData.re_info = this.data.contacts
+      this.financiallist = this.data.pay_finance
+      this.saletype = this.data.saletype
+      this.signbackstatus = this.data.signbackstatus
     },
+   
     async onSubmit() {
       const res = await this.$api.requested({
         "id": 20221108111402,
@@ -327,8 +295,10 @@ export default {
           "typemx":this.data.typemx, //明细分类,可选
           "remarks": this.defaultData.remarks, //可选
           // "saler_hrid":this.data.saler_hrid//销售人员hrid,业务员hrid
+          "signbackstatus":this.signbackstatus,
           "pay_enterpriseid":this.data.pay_enterpriseid,
-          "tradefield":this.data.tradefield
+          "tradefield":this.data.tradefield,
+          "saletype":this.saletype,
         },
       })
       this.tool.showMessage(res,()=>{
@@ -364,9 +334,18 @@ export default {
       this.tool.showMessage(res,()=>{
         this.setcol = 24
         this.$refs['prolist'].listData()
+        this.$emit('onSuccess')
       })
     },
     async useRebate () {
+      let that = this
+      if (this.rebateamount > this.defaultData.rebatebalance ||this.rebateamount > (this.data.amount * this.data.order_rebate_userate / 100) ) return  this.$message({
+        message:`余额不足或已超过可用上限!`,
+        type:function () {
+          that.rebateamount = 0
+          return 'error'
+        }()
+      })
       if (this.rebateamount == null) return this.$message({
           message:"返利金不能为空",
           type:'error'
@@ -393,10 +372,25 @@ export default {
         }
       })
       this.isusedrebate = res.data.order_rebate_used
+    },
+    // 选择结算企业
+    onSelect (data) {
+      this.defaultData.finance = data
+      this.financiallist = data.finance
+      data.finance.forEach(e => {
+        if (e.isdefault === 1) {
+           this.defaultData.fin_info = e
+        } else {
+          this.defaultData.fin_info = data.finance.length > 0 ?data.finance[0]:{}
+        }
+      });
+    },
+
+    async selectOptions () {
+      const res = await this.$store.dispatch('optiontypeselect','saletype')
+      this.saleroptions = res.data
     }
   },
-  mounted () {
-  }
 }
 
 </script>
@@ -404,14 +398,14 @@ export default {
 </style>
 <style scoped>
 .reveive__panel{
-  font-size: 14px;
+  font-size: 16px;
   line-height: 30px;
   padding: 10px;
   background: #d9ecff;
   border: 1px dashed #0676e7;
 }
 .account__panel small,.reveive__panel small{
-  color:#666
+  color:#888
 }
 .account__panel{
   width: calc(25% - 26px);

+ 121 - 0
src/template/orderAddCanUseAgent/index.vue

@@ -0,0 +1,121 @@
+<template>
+  <div>
+    <el-popover
+      placement="bottom"
+      width="100%"
+      v-model="visible">
+      <div>
+        <div class="flex-align-center flex-between" style="margin-bottom:10px">
+          <el-input style="width:200px" suffix-icon="el-icon-search" size="small" v-model="params.content.where.condition" placeholder="输入经销商信息" @keyup.enter.native="queryEnterpriseArchives(params.content.pageNumber = 1)" @clear="queryEnterpriseArchives(params.content.pageNumber = 1)" clearable></el-input>
+          <addTemp @onSuccess="onSuccess"></addTemp>
+        </div>
+        <el-table
+          :data="ENlist"
+          size="small"
+          stripe
+          style="width: 100%"
+          height="300"
+          border>
+          <el-table-column
+            prop="enterprisename"
+            label="经销商名称"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="contact"
+            label="联系人"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="phonenumber"
+            label="联系电话"
+            width="180">
+          </el-table-column>
+          <el-table-column>
+            <template slot-scope="scope">
+              <el-button size="mini" type="text" @click="rowClick(scope.row)">选 择</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div style="margin-top:16px;text-align:right">
+          <el-pagination
+            background
+            small
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-size="params.content.pageSize"
+            layout="total, prev, pager, next, jumper"
+            :total="total">
+          </el-pagination>
+        </div>
+      </div>
+      <el-input readonly :validate-event="false" slot="reference" v-model="form.enterprisename" @focus="queryEnterpriseArchives"  placeholder="输入经销商信息" clearable></el-input>
+    </el-popover>
+  </div>
+</template>
+
+<script>
+import addTemp from '@/Form/EnterpriseArchives/add.vue'
+export default {
+  components:{
+    addTemp
+  },
+  props:['ismanage'],
+  data () {
+    return {
+      ENlist:[],
+      total:0,
+      currentPage:0,
+      form:{
+        enterprisename:''
+      },
+      params:{
+        "id": 20230219195002,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 10,
+          "ismanage": this.ismanage,
+          "where": {
+            "condition": ''
+          },
+        }
+      },
+      visible:false
+    }
+  },
+  methods:{
+    async queryEnterpriseArchives () {
+      // if (this.type) this.params.content.where.type = this.type
+      const res = await this.$api.requested(this.params)
+      this.ENlist = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      this.params.content.pageSize = val
+      this.queryEnterpriseArchives()
+    },
+    handleCurrentChange(val) {
+      this.params.content.pageNumber = val
+      this.queryEnterpriseArchives()
+    },
+    rowClick (row) {
+      this.visible = false
+      this.form.enterprisename = row.enterprisename
+      this.$emit('rowClick',row)
+    },
+    onSuccess () {
+      this.queryEnterpriseArchives()
+      this.form.enterprisename = this.ENlist[0].enterprisename
+      this.$emit('rowClick',this.ENlist[0])
+    }
+  },
+  mounted () {
+    // this.queryEnterpriseArchives()
+  }
+}
+
+</script>
+<style>
+</style>

+ 121 - 0
src/template/orderAddCanUseEnterprise/index.vue

@@ -0,0 +1,121 @@
+<template>
+  <div>
+    <el-popover
+      placement="bottom"
+      width="100%"
+      v-model="visible">
+      <div>
+        <div class="flex-align-center flex-between" style="margin-bottom:10px">
+          <el-input style="width:200px" suffix-icon="el-icon-search" size="small" v-model="params.content.where.condition" placeholder="输入经销商信息" @keyup.enter.native="queryEnterpriseArchives(params.content.pageNumber = 1)" @clear="queryEnterpriseArchives(params.content.pageNumber = 1)" clearable></el-input>
+          <addTemp @onSuccess="onSuccess"></addTemp>
+        </div>
+        <el-table
+          :data="ENlist"
+          size="small"
+          stripe
+          style="width: 100%"
+          height="300"
+          border>
+          <el-table-column
+            prop="enterprisename"
+            label="经销商名称"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="contact"
+            label="联系人"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="phonenumber"
+            label="联系电话"
+            width="180">
+          </el-table-column>
+          <el-table-column>
+            <template slot-scope="scope">
+              <el-button size="mini" type="text" @click="rowClick(scope.row)">选 择</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div style="margin-top:16px;text-align:right">
+          <el-pagination
+            background
+            small
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-size="params.content.pageSize"
+            layout="total, prev, pager, next, jumper"
+            :total="total">
+          </el-pagination>
+        </div>
+      </div>
+      <el-input readonly :validate-event="false" slot="reference" v-model="form.enterprisename" @focus="queryEnterpriseArchives"  placeholder="输入经销商信息" clearable></el-input>
+    </el-popover>
+  </div>
+</template>
+
+<script>
+import addTemp from '@/Form/EnterpriseArchives/add.vue'
+export default {
+  components:{
+    addTemp
+  },
+  props:['ismanage'],
+  data () {
+    return {
+      ENlist:[],
+      total:0,
+      currentPage:0,
+      form:{
+        enterprisename:''
+      },
+      params:{
+        "id": 20230220005002,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 10,
+          "ismanage": this.ismanage,
+          "where": {
+            "condition": ''
+          },
+        }
+      },
+      visible:false
+    }
+  },
+  methods:{
+    async queryEnterpriseArchives () {
+      // if (this.type) this.params.content.where.type = this.type
+      const res = await this.$api.requested(this.params)
+      this.ENlist = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      this.params.content.pageSize = val
+      this.queryEnterpriseArchives()
+    },
+    handleCurrentChange(val) {
+      this.params.content.pageNumber = val
+      this.queryEnterpriseArchives()
+    },
+    rowClick (row) {
+      this.visible = false
+      this.form.enterprisename = row.enterprisename
+      this.$emit('rowClick',row)
+    },
+    onSuccess () {
+      this.queryEnterpriseArchives()
+      this.form.enterprisename = this.ENlist[0].enterprisename
+      this.$emit('rowClick',this.ENlist[0])
+    }
+  },
+  mounted () {
+    // this.queryEnterpriseArchives()
+  }
+}
+
+</script>
+<style>
+</style>

+ 4 - 0
src/template/orderCanUseContract/index.vue

@@ -54,6 +54,7 @@
 
 <script>
 export default {
+  props:['ismanage'],
   data () {
     return {
       param:{
@@ -73,6 +74,9 @@ export default {
   },
   methods:{
     async listData () {
+      if (this.ismanage) {
+        this.param.content.ismanage
+      }
       const res = await this.$api.requested(this.param)
       this.tableData = res.data
       this.total = res.total

+ 3 - 0
src/template/orderCanUseFinance/index.vue

@@ -85,6 +85,9 @@ export default {
   },
   methods:{
     async queryEnterpriseArchives () {
+      if (this.sys_enterpriseid) {
+        this.params.content.sys_enterpriseid = this.sys_enterpriseid
+      }
       const res = await this.$api.requested(this.params)
       this.ENlist = res.data
       this.total = res.total