Browse Source

Merge remote-tracking branch 'origin/mergeBranch' into mergeBranch

qymljy 2 years ago
parent
commit
b5df541089

+ 49 - 58
src/Form/EnterpriseArchives/add.vue

@@ -1,38 +1,27 @@
 <template>
   <div>
-    <el-button size="mini" type="primary" @click="dialogFormVisible = true">新 建</el-button>
-    <el-drawer
-        title="新建档案"
-        direction="rtl"
-        append-to-body
-        :visible.sync="dialogFormVisible"
-        size="20%"
-        @close="onCancel">
+    <el-button size="mini" type="primary" @click="onShow">新 建</el-button>
+    <el-drawer title="新建档案" direction="rtl" append-to-body :visible.sync="dialogFormVisible">
       <div class="drawer__panel">
         <el-row :gutter="20">
-          <el-form :model="form" :rules="rules" ref="form" label-width="85px" label-position="right" size="mini">
+          <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
             <el-col :span="24">
-              <el-form-item label="企业名称:" prop="enterprisename">
+              <el-form-item label="企业名称" prop="enterprisename">
                 <el-input v-model="form.enterprisename" placeholder="输入企业名称"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item label="税号:" prop="taxno">
-                <el-input v-model="form.taxno" placeholder="输入税号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="联系人:" prop="contact">
+            <el-col :span="12">
+              <el-form-item label="联系人" prop="contact">
                 <el-input v-model="form.contact" placeholder="输入企业联系人"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item label="联系电话:" prop="phonenumber">
+            <el-col :span="12">
+              <el-form-item label="联系电话" prop="phonenumber">
                 <el-input v-model="form.phonenumber" placeholder="输入联系电话"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="24">
-              <el-form-item label="省市县:" prop="value">
+            <el-col :span="12">
+              <el-form-item label="省市县" prop="value">
                 <el-cascader
                   style="width:100%"
                   v-model="form.value"
@@ -41,8 +30,25 @@
                 </el-cascader>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item label="税号" prop="taxno">
+                <el-input v-model="form.taxno" placeholder="输入税号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="企业等级">
+                <el-select style="width:100%" v-model="form.grade" placeholder="请选择">
+                  <el-option
+                    v-for="item in agent_level"
+                    :key="item.value"
+                    :label="item.remarks"
+                    :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
-              <el-form-item label="详细地址:" prop="address">
+              <el-form-item label="详细地址" prop="address">
                 <el-input v-model="form.address" type="textarea" :rows="3" placeholder="输入详细地址"></el-input>
               </el-form-item>
             </el-col>
@@ -50,16 +56,15 @@
         </el-row>
       </div>
       <div class="fixed__btn__panel">
-        <el-button size="small" @click="onCancel" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
       </div>
     </el-drawer>
-   
-    
   </div>
 </template>
 
 <script>
+import {mapGetters} from 'vuex'
 export default {
   data () {
     return {
@@ -67,13 +72,9 @@ export default {
       form:{
         enterprisename:'',
         value:[],
-        sys_enterpriseid:0,
-        taxno:'',
-        contact:'',
-        phonenumber:'',
-        address:'',
+        sys_enterpriseid:0
       },
-      arealist:[],
+      agent_level:[],
       rules:{
         enterprisename: [
           { required: true, message: '输入企业名称', trigger: 'blur' },
@@ -86,22 +87,34 @@ export default {
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
         taxno: [
-          { required: false, message: '输入税号', trigger: 'blur' },
+          { required: true, message: '输入税号', trigger: 'blur' },
         ],
         value: [
           { required: true, message: '选择省市县', trigger: 'change' },
         ],
         address:[
-          { required: false, message: '输入详细地址', trigger: 'blur' },
+          { required: true, message: '输入详细地址', trigger: 'blur' },
         ],
       }
     }
   },
+  computed:{
+    ...mapGetters ({
+      arealist:'arealist'
+    })
+  },
   methods:{
+    onShow () {
+      this.dialogFormVisible = true
+      this.query_sysoptions()
+    },
+    async query_sysoptions () {
+      const res = await this.$store.dispatch('optiontypeselect','agentgrade')
+      this.agent_level = res.data
+    },
     cascaderChange (val) {
       if (val.length === 1) 
         return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
-
       this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
       
     },
@@ -113,33 +126,11 @@ export default {
           "content":this.form
         })
         this.tool.showMessage(res,()=>{
-          this.$emit('onSuccess',res)
+          this.$emit('onSuccess')
           this.$refs['form'].resetFields();
-          this.form = {
-            enterprisename:'',
-                value:[],
-                sys_enterpriseid:0,
-                taxno:'',
-                contact:'',
-                phonenumber:'',
-                address:'',
-          }
           this.dialogFormVisible = false
         })
      })
-    },
-    onCancel(){
-      this.$refs['form'].resetFields();
-      this.form = {
-        enterprisename:'',
-        value:[],
-        sys_enterpriseid:0,
-        taxno:'',
-        contact:'',
-        phonenumber:'',
-        address:'',
-      }
-      this.dialogFormVisible = false
     }
   },
   mounted () {

+ 19 - 0
src/Form/EnterpriseArchives/edit.vue

@@ -35,6 +35,18 @@
                 <el-input v-model="form.taxno" placeholder="输入税号"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item label="企业等级">
+                <el-select style="width:100%" v-model="form.grade" placeholder="请选择">
+                  <el-option
+                    v-for="item in agent_level"
+                    :key="item.value"
+                    :label="item.remarks"
+                    :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
             <el-col :span="24">
               <el-form-item label="详细地址" prop="address">
                 <el-input v-model="form.address" type="textarea" :rows="3" placeholder="输入详细地址"></el-input>
@@ -63,6 +75,7 @@ export default {
         value:[],
         sys_enterpriseid:0
       },
+      agent_level:[],
       rules:{
         enterprisename: [
           { required: true, message: '输入企业名称', trigger: 'blur' },
@@ -93,15 +106,21 @@ export default {
   },
   methods:{
     onShow () {
+      this.query_sysoptions()
       this.$store.dispatch('queryArealist')
       let arr = ['province','city','county']
       arr.forEach(e=>{
         this.data[e] !== '' ?this.form.value.push(this.data[e]):''
       })
       this.form = Object.assign({},this.form,this.data)
+      this.form.value = [this.data.province, this.data.city, this.data.county]
       this.dialogFormVisible = true
       
     },
+    async query_sysoptions () {
+      const res = await this.$store.dispatch('optiontypeselect','agentgrade')
+      this.agent_level = res.data
+    },
     cascaderChange (val) {
       if (val.length === 1) 
         return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})

+ 2 - 2
src/Form/marketing2/agent/edit.vue

@@ -86,7 +86,7 @@
                 <selectAgent ref="agent" @selectAgent="selectAgent"></selectAgent>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <!-- <el-col :span="12">
               <el-form-item label="经销商等级">
                 <el-select style="width:100%" v-model="form.grade" placeholder="请选择">
                   <el-option
@@ -97,7 +97,7 @@
                   </el-option>
                 </el-select>
               </el-form-item>
-            </el-col>
+            </el-col> -->
             <el-col :span="12">
               <el-form-item label="营销区域" prop="sa_saleareaids">
                 <el-cascader

+ 1 - 1
src/HDrpManagement/accountclass/index.vue

@@ -16,7 +16,7 @@
         </div>
       </template>
       <template v-slot:tbOpreation="scope">
-        <edit :data="scope.data.data" @onSuccess="onSuccess"></edit>
+        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data.data" @onSuccess="onSuccess"></edit>
       </template>
     </basicLayout>
   </div>

+ 29 - 12
src/HDrpManagement/orderManage/details/index.vue

@@ -16,9 +16,11 @@
         @pageChange="pageChange"
         @onEditSuccess="queryMainData($route.query.id)">
         <div slot="customOperation" class="inline-16">
-          <el-button v-if="tool.checkAuth($route.name,'examine')" :disabled="mainData.status !== '提交'" type="primary" size="mini" @click="onSubmit('审核')">审 核</el-button>
+          <el-button :disabled="mainData.status !== '交期待确认'" class="inline-16"  type="primary" size="mini" @click="confirmdate">确认交期</el-button>
+          <confirmDate class="inline-16" :data="mainData" @onSuccess="queryMainData"></confirmDate>
+          <el-button v-if="tool.checkAuth($route.name,'examine')" :disabled="mainData.status !== '提交' && mainData.status !== '交期确认'" type="primary" size="mini" @click="onSubmit('审核')">审 核</el-button>
           <el-button v-if="tool.checkAuth($route.name,'examine')" :disabled="mainData.status !== '审核'" type="primary" size="mini" @click="onReturnCheck">反审核</el-button>
-          <el-button v-if="tool.checkAuth($route.name,'reback')" :disabled="mainData.status !== '提交'" type="primary" size="mini" @click="dialogVisible = true">退 回</el-button>
+          <el-button v-if="tool.checkAuth($route.name,'reback')" :disabled="mainData.status !== '提交' && mainData.status !== '交期待确认'" type="primary" size="mini" @click="dialogVisible = true">退 回</el-button>
           <el-button v-if="tool.checkAuth($route.name,'submit')" :disabled="mainData.status !== '新建'"  type="primary" size="mini" @click="onSubmit('提交')">提 交</el-button>
           <el-button v-if="tool.checkAuth($route.name,'close')" :disabled="mainData.status !== '审核'" type="primary" size="mini" @click="closeOrder">关 闭</el-button>
       </div>
@@ -26,7 +28,7 @@
         <default-info :mainData="mainData"></default-info>
       </div>
       <div slot="slot1" >
-        <product-list></product-list>
+        <product-list ref="prod"></product-list>
       </div>
     </basicDetails>
     <el-dialog append-to-body title="退回原因" :visible.sync="dialogVisible" width="400px">
@@ -41,7 +43,8 @@
 
 <script>
 import defaultInfo from '../modules/defaultInfo.vue';
-import productList from '../modules/productlist'
+import productList from '../modules/productlist.vue'
+import confirmDate from '../modules/confirmDate.vue'
 
 export default {
   name: "detail",
@@ -55,7 +58,8 @@ export default {
   },
   components:{
     defaultInfo,
-    productList
+    productList,
+    confirmDate
   },
   methods:{
     async queryMainData(id) {
@@ -117,14 +121,15 @@ export default {
         type: 'warning'
       }).then(async () => {
         const res = await this.$api.requested({
-          "id": type === '审核'?20221108153502:20230102141502,
+          "id": type === '审核'?20221108153502:20221108153402,
           "content": {
-              "sa_orderid": this.mainData.sa_orderid,
-              "sys_enterpriseid": this.mainData.sys_enterpriseid,
-              "sa_accountclassid": this.mainData.accountclass.sa_accountclassid
+            "sa_orderid": this.mainData.sa_orderid,
+            "sys_enterpriseid": this.mainData.sys_enterpriseid,
+            "sa_accountclassid": this.mainData.accountclass.sa_accountclassid
           },
         })
-        this.tool.showMessage(res,()=>{
+        this.tool.showMessage(res,async ()=>{
+          console.log(this.mainData.sys_enterpriseid,this.mainData.accountclass.sa_accountclassid)
           this.queryMainData()
         })
       }).catch((err) => {
@@ -134,7 +139,7 @@ export default {
         });          
       });
     },
-    // 提交审核订单
+    // 审核订单
     onReturnCheck () {
       this.$confirm(`是否反审核该订单`, '提示', {
         confirmButtonText: '确定',
@@ -148,7 +153,7 @@ export default {
           },
         })
         this.tool.showMessage(res,()=>{
-          this.queryMainData()
+          this.$store.dispatch('changeDetailDrawer',false)
         })
       }).catch((err) => {
         this.$message({
@@ -170,6 +175,7 @@ export default {
       this.tool.showMessage(res,()=>{
         this.queryMainData()
         this.dialogVisible = false
+        this.$store.dispatch('changeDetailDrawer',false)
       })
     },
     async closeOrder () {
@@ -183,6 +189,17 @@ export default {
         this.queryMainData()
         this.dialogVisible = false
       })
+    },
+    async confirmdate () {
+      const res = await this.$api.requested({
+        "id": 20221230094802,
+        "content": {
+          "sa_orderid": this.$route.query.id
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+      })
     }
   },
   mounted () {

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

@@ -6,6 +6,7 @@
       tableName="orderTable" 
       idName="sa_orderid" 
       :apiId="{query:20221111145202,del:20221108152102}"
+      :oldFormPath="{add:'HDrpManagement/orderManage/modules'}"
       :options="options"
       :detailPath="{
         path:'/orderdetail'

+ 160 - 0
src/HDrpManagement/orderManage/modules/add.vue

@@ -0,0 +1,160 @@
+<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">
+      <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="sa_brandid">
+                <el-select 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 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-col :span="12">
+              <el-form-item label="企业信息" prop="sys_enterpriseid">
+                <enterprise @rowClick="rowClick"></enterprise>
+              </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'
+export default {
+  data () {
+    return {
+      drawer:false,
+      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":25,//销售人员hrid,业务员hrid
+        "tradefield":"",//必选
+        "pay_enterpriseid": 1, //结算单位
+        "rebate_used":0,//默认0,是否使用返利金
+        "billdate":"",//单据日期,默认创建日期
+        "signbacknum":""
+      },
+      rules: {
+        sa_brandid: [{
+          required: true,
+          message: '请选择选择品牌',
+          trigger: 'change'
+        }],
+        tradefield: [{
+          required: true,
+          message: '请选择选择领域',
+          trigger: 'change'
+        }],
+        sys_enterpriseid:[{
+          required: true,
+          message: '订货企业不能为空',
+          trigger: 'blur'
+        }]
+      },
+      sa_brandidOptions: [],
+      tradefieldOptions: [],
+    }
+  },
+  components:{
+    enterprise
+  },
+  methods:{
+    handleCommand (command) {
+      this.drawer = true
+      this.form.type = command
+      this.pageData()
+    },
+    submitForm() {
+      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}})
+        })
+      })
+    },
+    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.$refs['form'].validate(valid => {
+      //   if (!valid) return
+      // })
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 57 - 0
src/HDrpManagement/orderManage/modules/confirmDate.vue

@@ -0,0 +1,57 @@
+<template>
+<div>
+    <el-button type="primary" size="mini" @click="onShow(drawer = true)">回复交期</el-button>
+    <el-drawer
+    :visible.sync="drawer"
+    direction="rtl"
+    append-to-body
+    size="80%"
+    :show-close="false"
+    :withHeader="false">
+    <div class="drawer__panel">
+      <product-list ref="prolist" :data="data" :type="'confirmdate'"></product-list>
+    </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'
+export default {
+  props:['data'],
+  components:{
+    previewImage,
+    productList,
+  },
+  data () {
+    return {
+      drawer:false
+    }
+  },
+  methods:{
+    onShow () {
+
+    },
+    async onSubmit () {
+      const res = await this.$api.requested({
+        "id": 20230102143502,
+        "content": {
+          "sa_orderid": this.$route.query.id
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.drawer = false
+        this.$emit('onSuccess')
+      })
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 7 - 4
src/HDrpManagement/orderManage/modules/edit.vue

@@ -287,7 +287,10 @@ export default {
         "id": "20221008134803",
         "content": {
           "pageNumber": 1,
-          "pageSize": 100
+          "pageSize": 100,
+          "where":{
+            "isused":1
+          }
         }
       })
       this.accountlist = res.data
@@ -324,11 +327,11 @@ export default {
         "id": 20221108111402,
         "content": {
           "sa_orderid": this.$route.query.id,
-          "sys_enterpriseid": 1, //订货企业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,标准订单不传
+          "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(收货信息)

+ 93 - 41
src/HDrpManagement/orderManage/modules/productlist.vue

@@ -24,7 +24,8 @@
         width="180">
       </el-table-column>
       <el-table-column
-        label="型号/规格">
+        label="型号/规格"
+        width="150">
         <template slot-scope="scope">
           <p><span>{{scope.row.model}}</span>&nbsp;/&nbsp;<span>{{scope.row.spec}}</span></p>
         </template>
@@ -33,34 +34,56 @@
         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="qtyChange(scope.row,scope.$index)"></el-input-number>
+          <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>
           <span v-else>{{scope.row.qty}}</span>
         </template>
       </el-table-column>
       <el-table-column
-        label="交期"
+        prop="needdate"
+        label="需求日期"
+        width="180">
+        <template slot-scope="scope">
+          <el-date-picker
+            v-if="scope.row.delivery > 0 && type === 'edit'"
+            v-model="scope.row.needdate"
+            type="date"
+            placeholder="选择日期"
+            value-format="yyyy-MM-dd"
+            size="mini"
+            style="width:150px"
+            :picker-options="pickerOptions"
+            @change="rowChange(scope.row)"
+            @focus="setPickerOptions(scope.row)">
+          </el-date-picker>
+          <div v-else>
+            <p v-if="scope.row.delivery === 0 ">不管控交期</p>
+            <p v-else>{{scope.row.needdate}}</p>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="回复交期"
         width="200">
-        <template slot="header">
+        <template slot="header" slot-scope="scope">
           <div>
-            <span>交期</span>&nbsp;
-            <el-popover
-              v-if="type === 'edit'"
-              placement="bottom"
-              width="400"
-              trigger="click">
-              <el-date-picker
-                v-model="value2"
-                slot="reference"
-                align="right"
-                type="date"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-popover>
+            <el-date-picker
+              style="width:180px"
+              v-if="type === 'confirmdate'"
+              v-model="value2"
+              value-format="yyyy-MM-dd"
+              slot="reference"
+              align="right"
+              type="date"
+              size="mini"
+              placeholder="一键交期"
+              @change="dateChange">
+            </el-date-picker>
+            <span v-else>回复交期</span>
           </div>
         </template>
         <template slot-scope="scope">
           <el-date-picker
-            v-if="scope.row.delivery > 0 && type === 'edit'"
+            v-if="scope.row.delivery > 0 && type === 'confirmdate'"
             v-model="scope.row.deliverydate"
             type="date"
             placeholder="选择日期"
@@ -68,7 +91,8 @@
             size="mini"
             style="width:150px"
             :picker-options="pickerOptions"
-            @change="onDateChange(scope.row)">
+            @change="onDateChange(scope.row)"
+            @focus="setPickerOptions(scope.row)">
           </el-date-picker>
           <div v-else>
             <p v-if="scope.row.delivery === 0 ">不管控交期</p>
@@ -93,8 +117,7 @@
         </template>
       </el-table-column>
       <el-table-column
-        label="小计"
-        width="150">
+        label="小计">
         <template slot-scope="scope">
           <p style="color:red;font-weight:500">¥&nbsp;{{tool.formatAmount(scope.row.price * scope.row.qty,2)}}</p>
         </template>
@@ -125,6 +148,7 @@ export default {
   props:['data','type'],
   data () {
     return {
+      dataRefresh:true,
       tableData:[],
       param:{
         "id": 20221109093902,
@@ -179,13 +203,13 @@ export default {
         this.$emit('onSuccess')
       })
     },
-    async updateOrderProduct (val) {
-      const res  = await this.$api.requested({
-        "id": 20221110145302,
-        "content": val
-      })
-    },
-    qtyChange (val,index) {
+    // async updateOrderProduct (val) {
+    //   const res  = await this.$api.requested({
+    //     "id": 20221110145302,
+    //     "content": val
+    //   })
+    // },
+    rowChange (val,index) {
       let that = this
       this.$set(this.tableData,index,val)
       // // 防抖
@@ -193,21 +217,24 @@ export default {
         clearTimeout(this.time);
       }
       this.time = setTimeout(() => {
-        that.updateOrderProduct({
-          "sa_orderitemsid":val.sa_orderitemsid,
-          "sa_orderid":this.$route.query.id,//订单ID
-          "itemid":val.itemid,//商品ID
-          "type":"数量",//调整类型,目前只支持数量
-          "oldvalue":val.qty,//原值
-          "newvalue":val.qty,//调整后值
-          "remarks":val.remarks,
-          "deliverydate":val.deliverydate
+        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//可以不传,修改交期
+          }]
         })
       },500)
     },
     onDateChange (val){
       let that = this
-      that.updateOrderDATE({
+      
+      that.updateOrder({
         "sa_orderid": this.data.sa_orderid, //订单ID
         "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
         "sa_contractid": this.data.contacts.contactsid, //合同ID
@@ -220,12 +247,37 @@ export default {
         }]
       })
     },
-    async updateOrderDATE (val) {
+    async updateOrder (val) {
       const res  = await this.$api.requested({
         "id": 20221109093602,
         "content": val
       })
-    }
+    },
+    setPickerOptions (val) {
+      var startDate = val.deliverydate
+      startDate = startDate.replace(new RegExp("-","gm"),"/")
+      var startDateM = (new Date(startDate)).getTime()
+      this.pickerOptions = {
+        disabledDate(time) {
+          return time.getTime() < startDateM;
+        },
+      }
+    },
+    async dateChange (row) {
+      this.tableData = this.tableData.filter(e=>{
+        if (e.delivery > 0) {
+          e.deliverydate = this.value2
+        }
+        return e
+      })
+      const res = await this.$api.requested({
+       "id": 20230104143102,
+        "content": {
+          "sa_orderid": this.$route.query.id, 
+          "deliverydate": this.value2
+        },
+      })
+    },
   },
   mounted () {
     this.listData()

+ 206 - 0
src/SDrpManagement/agentOrder/details/index.vue

@@ -0,0 +1,206 @@
+<template>
+  <div>
+    <basicDetails
+        ref="details"
+        :titleText="`${mainData.sonum}`"
+        :oldFormPath="{edit:'SDrpManagement/agentOrder/modules'}"
+        :editData="mainData"
+        :mainAreaData="mainAreaData"
+        turnPageId="20221111145202"
+        idname="sa_orderid"
+        ownertable="sa_order"
+        delApiId="20221108152102"
+        tags=""
+        :statusCheck="[{key:'status',value:'审核'},{key:'status',value:'提交'},{key:'status',value:'关闭'}]"
+        :tabs="['基本信息','订单明细','订单进度']"
+        @pageChange="pageChange"
+        @onEditSuccess="queryMainData($route.query.id)">
+        <div slot="customOperation" class="inline-16">
+          <el-button :disabled="mainData.status !== '交期待确认'"  type="primary" size="mini" @click="confirmdate">确认交期</el-button>
+          <el-button v-if="tool.checkAuth($route.name,'submit')" :disabled="mainData.status !== '新建'"  type="primary" size="mini" @click="onSubmit('提交')">提 交</el-button>
+      </div>
+      <div slot="slot0" >
+        <default-info :mainData="mainData"></default-info>
+      </div>
+      <div slot="slot1" >
+        <product-list ref="prod"></product-list>
+      </div>
+    </basicDetails>
+    <el-dialog append-to-body title="退回原因" :visible.sync="dialogVisible" width="400px">
+      <el-input v-model="backreason" type="textarea" placeholder="请输入退回原因"></el-input>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="small">取 消</el-button>
+        <el-button type="primary" @click="onRebanck" size="small">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import defaultInfo from '../modules/defaultInfo.vue';
+import productList from '../modules/productlist'
+
+export default {
+  name: "detail",
+  data() {
+    return {
+      mainData:{},
+      mainAreaData:{},
+      backreason:'',
+      dialogVisible:false
+    }
+  },
+  components:{
+    defaultInfo,
+    productList
+  },
+  methods:{
+    async queryMainData(id) {
+      const res = await this.$api.requested({
+        "id":'20221108151302',
+        "content": {
+          "sa_orderid": this.$route.query.id
+        }
+      })
+      this.mainData = res.data
+      this.changeDataStructure()
+    },
+    changeDataStructure() {
+      this.mainAreaData = [
+        {
+          label:'订单类型',
+          value:this.mainData.type
+        },
+        {
+          label:'订单状态',
+          value:this.mainData.status
+        },
+        {
+          label:'单据日期',
+          value:this.mainData.createdate
+        },
+        {
+          label:'合计数量',
+          value:this.mainData.qty
+        },
+        {
+          label:'合计金额',
+          value:this.mainData.amount
+        },
+        {
+          label:'折前金额',
+          value:this.mainData.defaultamount
+        },
+        {
+          label:'企业名称',
+          value:this.mainData.enterprisename
+        },
+        {
+          label:'备注',
+          value:this.mainData.remarks
+        }
+      ]
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange (id,rowindex,tabIndex) {
+      this.$router.replace({path:'/orderdetail',query:{id:id,rowindex:rowindex}})
+      this.queryMainData(id)
+    },
+    // 提交审核订单
+    onSubmit (type) {
+      this.$confirm(`是否${type}该订单`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        const res = await this.$api.requested({
+          "id": type === '审核'?20221108153502:20221108153402,
+          "content": {
+              "sa_orderid": this.mainData.sa_orderid,
+              "sys_enterpriseid": this.mainData.sys_enterpriseid,
+              "sa_accountclassid": this.mainData.accountclass.sa_accountclassid
+          },
+        })
+        this.tool.showMessage(res,async ()=>{
+          this.queryMainData()
+        })
+      }).catch((err) => {
+        this.$message({
+          type: 'info',
+          message: err
+        });          
+      });
+    },
+    // 反审核订单
+    onReturnCheck () {
+      this.$confirm(`是否反审核该订单`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        const res = await this.$api.requested({
+          "id": 20230102141502,
+          "content": {
+            "sa_orderid": this.mainData.sa_orderid,
+          },
+        })
+        this.tool.showMessage(res,()=>{
+          this.queryMainData()
+        })
+      }).catch((err) => {
+        this.$message({
+          type: 'info',
+          message: err
+        });          
+      });
+    },
+    async onRebanck () {
+      const res = await this.$api.requested({
+        "id": 20221108161902,
+        "content": {
+          "sys_enterpriseid":this.mainData.sys_enterpriseid,
+          "sa_accountclassid":this.mainData.accountclass.sa_accountclassid,
+          "sa_orderid": this.mainData.sa_orderid,
+          "backreason": this.backreason //退回原因,可选
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+        this.dialogVisible = false
+      })
+    },
+    async closeOrder () {
+      const res = await this.$api.requested({
+        "id": 20221108164502,
+        "content": {
+          "sa_orderids":[this.$route.query.id]
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+        this.dialogVisible = false
+      })
+    },
+    async confirmdate () {
+      const res = await this.$api.requested({
+        "id": 20221230094802,
+        "content": {
+          "sa_orderid": this.$route.query.id
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+      })
+    }
+  },
+  mounted () {
+    this.queryMainData(this.$route.query.id)
+  },
+  created() {
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 47 - 0
src/SDrpManagement/agentOrder/index.vue

@@ -0,0 +1,47 @@
+
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout"
+      tableName="orderTable" 
+      idName="sa_orderid" 
+      :apiId="{query:20221224180302,del:20221108152102}"
+      :options="options"
+      :detailPath="{
+        path:'/agent_orderDetails'
+      }">
+      <div slot="custom"></div>
+      <template v-slot:tbList="scope">
+        <div>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+/**
+ * @basicLayout 提供this.$ref['basicLayout'].listData()方法查询列表信息
+ * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
+ * @param {string} tableName 开发端配置的表格名称
+ * @param {String} idName 数据主id名称
+ * @param {object} apiId:{query:查询的接口id,del:删除的接口id} 
+ * @param {Array} options:{label:描述,value:值} 
+ */
+export default {
+  data () {
+    return {
+      options:[]
+      
+    }
+  },
+  methods:{
+  }
+}
+
+</script>
+<style>
+</style>

+ 47 - 0
src/SDrpManagement/agentOrder/modules/defaultInfo.vue

@@ -0,0 +1,47 @@
+<template>
+  <div>
+    <el-descriptions class="normal-margin" :column="2"  border labelClassName="my-label" contentClassName="my-content">
+      <div slot="title" class="my-label__title">账户信息</div>
+      <el-descriptions-item label="账户名称">{{ mainData.accountclass?mainData.accountclass.accountname:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="账户余额">{{ mainData.balance?mainData.accountclass.balance:"--" }}</el-descriptions-item>
+    </el-descriptions>
+    <el-descriptions  class="normal-margin" border :column="2" labelClassName="my-label" contentClassName="my-content">
+      <div slot="title" class="my-label__title">开票信息</div>
+      <el-descriptions-item label="抬头">{{ mainData.finance?mainData.finance.enterprisename:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="税号">{{ mainData.finance?mainData.finance.taxno:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="开户行">{{ mainData.finance?mainData.finance.bank:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="开户账号">{{ mainData.finance?mainData.finance.bankcardno:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="开户地址">{{ mainData.finance?mainData.finance.address:"--" }}</el-descriptions-item>
+    </el-descriptions>
+    <el-descriptions class="normal-margin"  border :column="2" labelClassName="my-label" contentClassName="my-content">
+      <div slot="title" class="my-label__title">收货信息</div>
+      <el-descriptions-item label="联系人">{{ mainData.contacts?mainData.contacts.name:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="联系电话">{{ mainData.contacts?mainData.contacts.phonenumber:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="地址">{{ mainData.contacts?`${mainData.contacts.province}${mainData.contacts.city}${mainData.contacts.county}${mainData.contacts.address}`:'--'}}</el-descriptions-item>
+    </el-descriptions>
+    <el-descriptions  border :column="2" labelClassName="my-label" contentClassName="my-content">
+      <div slot="title" class="my-label__title">物流信息</div>
+      
+      <el-descriptions-item label="物流公司">{{ mainData.logiscomp?mainData.logiscomp.enterprisename:"--" }}</el-descriptions-item>
+      <el-descriptions-item label="快递100ID">{{ mainData.logiscomp?mainData.logiscomp.kd100id:"--" }}</el-descriptions-item>
+    </el-descriptions>
+  </div>
+</template>
+
+<script>
+export default {
+  props:["mainData"],
+  data(){
+    return {
+    }
+  },
+  mounted() {
+  },
+  methods:{
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 420 - 0
src/SDrpManagement/agentOrder/modules/edit.vue

@@ -0,0 +1,420 @@
+<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 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="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 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="visible1">
+              <el-table
+                :data="logisticcomlist"
+                style="width: 100%"
+                size="mini">
+                <el-table-column
+                  prop="abbreviation"
+                  label="公司简称"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  prop="kd100id"
+                  label="快递100ID"
+                  width="120">
+                </el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="90">
+                  <template slot-scope="scope">
+                    <el-button type="text" @click="(defaultData.logist_info = scope.row,visible1 = 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.logist_info.abbreviation}}</b></span></p>
+            <small>快递100ID: {{defaultData.logist_info.kd100id}}</small>
+          </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="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,2)}}</b></p>
+            <small>{{defaultData.accountclass.accountname}}</small>
+          </div>
+        </div>
+      </div>
+      
+      <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>
+        <p><small>开票地址:&nbsp;</small>{{defaultData.fin_info.address}}</p>
+        <p><small>开户行:&nbsp;</small> {{defaultData.fin_info.bank}} &emsp;<small>开户账号:&nbsp;</small> {{defaultData.fin_info.bankcardno}}</p>
+      </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
+    }
+  },
+  methods:{
+    onShow () {
+      this.queryAgentiInfo()
+    },
+    async queryAgentiInfo () {
+      const res = await this.$api.requested({
+        "id": "20221022165203",
+        "content": {}
+      })
+      this.agnetInfo = res.data
+
+      this.receiveAddress()
+
+      this.queryAccount()
+
+      this.queryLogisticcom()
+
+      this.queryFinancial()
+    },
+    // 收货信息:合作企业联系人
+    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
+      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.onConfirm()
+        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()
+      })
+    }
+  },
+  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>

+ 279 - 0
src/SDrpManagement/agentOrder/modules/productlist.vue

@@ -0,0 +1,279 @@
+<template>
+  <div>
+    <el-table
+      ref="multipleTable"
+      :data="tableData"
+      height="500px"
+      style="width: 100%;"
+      size="small"
+      stripe
+      border>
+      <!-- <el-table-column
+        type="selection"
+        width="55"
+        align="center">
+      </el-table-column> -->
+      <el-table-column
+        prop="itemname"
+        label="产品名称"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="itemno"
+        label="产品编号"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        label="型号/规格">
+        <template slot-scope="scope">
+          <p><span>{{scope.row.model}}</span>&nbsp;/&nbsp;<span>{{scope.row.spec}}</span></p>
+        </template>
+      </el-table-column>
+      <el-table-column
+        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="qtyChange(scope.row,scope.$index)"></el-input-number>
+          <span v-else>{{scope.row.qty}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="需求日期"
+        width="200">
+        <template slot="header" slot-scope="scope">
+          <div>
+            <el-date-picker
+              style="width:180px"
+              v-if="type === 'edit'"
+              v-model="value2"
+              value-format="yyyy-MM-dd"
+              slot="reference"
+              align="right"
+              type="date"
+              size="mini"
+              placeholder="一键交期"
+              @change="dateChange(scope.row)">
+            </el-date-picker>
+            <span v-else>需求日期</span>
+          </div>
+        </template>
+        <template slot-scope="scope">
+          <el-date-picker
+            v-if="scope.row.delivery > 0 && type === 'edit'"
+            v-model="scope.row.needdate"
+            type="date"
+            placeholder="选择日期"
+            value-format="yyyy-MM-dd"
+            size="mini"
+            style="width:150px"
+            :picker-options="pickerOptions"
+            @change="onDateChange(scope.row)"
+            @focus="setPickerOptions(scope.row)">
+          </el-date-picker>
+          <div v-else>
+            <p v-if="scope.row.delivery === 0 ">不管控交期</p>
+            <p v-else>{{scope.row.needdate}}</p>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="deliverydate"
+        label="回复交期"
+        width="120">
+      </el-table-column>
+      <el-table-column
+        prop="unit"
+        label="计量单位"
+        width="90">
+        <template slot-scope="scope">
+          <el-tag size="mini" type="info" effect="plain">{{scope.row.unit}}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="price"
+        label="价格"
+        width="90">
+        <template slot-scope="scope">
+          <p style="color:red;font-weight:500">¥&nbsp;{{tool.formatAmount(scope.row.price,2)}}</p>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="小计"
+        width="150">
+        <template slot-scope="scope">
+          <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 v-if="type === 'edit'" width="90" fixed="right">
+        <template slot-scope="scope">
+          <el-button type="text" size="mini" @click="deleteOrderProduct(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="param.content.pageSize"
+        layout="total, prev, pager, next, jumper"
+        :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['data','type'],
+  data () {
+    return {
+      dataRefresh:true,
+      tableData:[],
+      param:{
+        "id": 20221109093902,
+        "content": {
+          "sa_orderid": 0, //订单ID
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": ""
+          }
+        },
+      },
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() < (Date.now() - 24 * 3600 * 1000);
+        },
+      },
+      total:0,
+      currentPage:0,
+      time: null,
+      value2:''
+    }
+  },
+  methods:{
+    async listData () {
+      this.param.content.sa_orderid = this.$route.query.id
+      const res = await this.$api.requested(this.param)
+      this.tableData = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+      this.listData()
+    },
+    async deleteOrderProduct (row) {
+      const res = await this.$api.requested({
+        "id": 20221109093702,
+        "content": {
+          "sa_orderid":this.$route.query.id,
+          "sa_orderitemsids": [row.sa_orderitemsid]
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.listData()
+        this.$emit('onSuccess')
+      })
+    },
+    // async updateOrderProduct (val) {
+    //   const res  = await this.$api.requested({
+    //     "id": 20221110145302,
+    //     "content": val
+    //   })
+    //   this.$emit('onSuccess')
+    // },
+    qtyChange (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//可以不传,修改交期
+          }]
+        })
+      },500)
+    },
+    onDateChange (val){
+      let that = this
+      that.value2 = ''
+      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//可以不传,修改交期
+        }]
+      })
+      
+    },
+    async dateChange (row) {
+      this.tableData = this.tableData.filter(e=>{
+        if (e.delivery > 0) {
+          e.needdate = this.value2
+        }
+        return e
+      })
+      const res = await this.$api.requested({
+       "id": 20230104143802,
+        "content": {
+          "sa_orderid": this.$route.query.id, 
+          "needdate": this.value2
+        },
+      })
+    },
+    async updateOrder (val) {
+      const res  = await this.$api.requested({
+        "id": 20221109093602,
+        "content": val
+      })
+      // this.$emit('onSuccess')
+    },
+    setPickerOptions (val) {
+      var startDate = val.deliverydate
+      startDate = startDate.replace(new RegExp("-","gm"),"/")
+      var startDateM = (new Date(startDate)).getTime()
+      this.pickerOptions = {
+        disabledDate(time) {
+          return time.getTime() < startDateM;
+        },
+      }
+    },
+  },
+  mounted () {
+    this.listData()
+  },
+  watch:{
+    value2 (val) {
+      console.log(val)
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 1 - 1
src/SDrpManagement/salerPrivatecustomer/detail/modules/detailedData.vue

@@ -12,7 +12,7 @@
         <el-descriptions-item label-class-name="my-label" label="成交状态">{{ basic.tradingstatus?basic.tradingstatus:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="成交次数">{{ basic.contact_signnum === 0?0:basic.contact_signnum }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="合作状态">{{ basic.status?basic.status:"--" }}</el-descriptions-item>
-        <el-descriptions-item label-class-name="my-label" label="负责人">{{ basic.leader.length !== 0?basic.leader[0].name:"--" }}</el-descriptions-item>
+        <el-descriptions-item label-class-name="my-label" label="负责人">{{ basic.leader?basic.leader[0].name:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="来源">{{ basic.source?basic.source:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="所属公海">{{ basic.sourcepoolname?basic.sourcepoolname:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="省市县">{{ basic.province?basic.province + '-' + basic.city + '-' + basic.county:"--" }}</el-descriptions-item>

+ 2 - 2
src/SManagement/sales_forecast/index.vue

@@ -8,8 +8,8 @@
       :apiId="{query:20220908134403,del:''}" 
       :options="options"
       :detailPath="{path:'/product_detail'}"
-      @listCreate="list"
-    >
+      :statusHideDetailBtn="['待提报','提报中']"
+      @listCreate="list">
       <div slot="custom">
         <label class="search__label ">状态:</label>
         <el-select  class="inline-24" @change="selectChange" v-model="selectParam.status" placeholder="请选择状态" size="small" clearable>

+ 0 - 1
src/SManagement/sales_forecast/modules/project.vue

@@ -91,7 +91,6 @@ export default {
     async deleteProject (row) {
       const res = await this.$api.requested({
         "id": 20220906155103,
-        "version":1,
         "content": {
             "sa_salesforecastid":0,
             "sa_projectid":row.sa_projectid,

+ 2 - 12
src/components/normal-basic-layout/details/modules/group/group.vue

@@ -20,12 +20,7 @@
         <div class="avatar inline-16" :class="men.isleader === 1?'leader':''" >
           <img class="avatar__image" v-if="men.headpic" :src="men.headpic" alt="">
           <p v-else>{{men.name.substr(0, 1)}}</p>
-          <!-- <span class="avatar__model">
-            <i style="margin-right:5px" class="el-icon-user" @click="setLeader(men)"></i>
-            <i class="el-icon-delete" @click="deleteGroupAccount(men)"></i>
-          </span> -->
         </div>
-        <!-- <p>{{men.name}}</p> -->
         <div>
 					<p>{{ men.name }} <small style="color:#999999ad">&nbsp;账号:{{ men.username }}</small></p>
 					<small style="color:#999999ad;margin-top:10px">部门:{{ men.depname?men.depname:"未知部门" }}&emsp;职位:{{ men.position?men.position:"未知部门" }}</small>
@@ -51,10 +46,6 @@
         <div class="avatar inline-16"  :class="men.isleader === 1?'leader':''" >
           <img class="avatar__image" v-if="men.headpic" :src="men.headpic" alt="">
           <p v-else>{{men.name.substr(0, 1)}}</p>
-          <!-- <span class="avatar__model">
-            <i style="margin-right:5px" class="el-icon-user" @click="setLeader(men)"></i>
-            <i class="el-icon-delete" @click="deleteGroupAccount(men)"></i>
-          </span> -->
         </div>
         <div>
           <p>{{ men.name }}&nbsp;<small style="color:#999999ad">&nbsp;账号:{{ men.username }}</small></p>
@@ -91,13 +82,12 @@ export default {
       param:{
         id:'20221018122201',
         content: {
-          "ownertable":'',
-          "ownerid":0,
+          "ownertable":this.ownertable,
+          "ownerid":this.$route.query.id,
           "pageSize":20,
           "where":{
             "condition":"",
             "withoutselect":0,
-            
           }
         }
       },

+ 11 - 2
src/components/normal-basic-layout/index.vue

@@ -52,7 +52,7 @@
 
            
             <template v-slot:opreation="scope">
-              <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data" :detailPath="detailPath" :idName="idName" @onSuccess="listData"></drawerTemp>
+              <drawerTemp class="inline-16" v-if="detailPath && checkRowStatus(scope.data.status)" :data="scope.data" :detailPath="detailPath" :idName="idName" @onSuccess="listData"></drawerTemp>
               <!--systemappid != 163 排除报表应用-->
               <reportCenter class="inline-16" :data="reportCenterLsit" v-if="reportCenterLsit.length > 0 && systemappid != 163">
                 <template v-slot:print="scope2">
@@ -89,7 +89,7 @@
 import {mapGetters} from 'vuex'
 export default {
   componentName:'normalTable',
-  props:['tableName','idName','tableData','apiId','formPath','oldFormPath','options','autoQuery','detailPath','customTitle','hidePagination','hideSearch'],
+  props:['tableName','idName','tableData','apiId','formPath','oldFormPath','options','autoQuery','detailPath','customTitle','hidePagination','hideSearch','statusHideDetailBtn'],
   components:{
     tableTemp: () => import('./modules/table.vue'),
     setColumn: () => import('./modules/setColumn.vue'),
@@ -242,6 +242,15 @@ export default {
 			let _isSame = this.menuApp.some(m=>this.activeApp.name === m.systemapp)
 			return _isSame
 		},
+    checkRowStatus (status) {
+      if (this.statusHideDetailBtn) {
+        let _isSame = this.statusHideDetailBtn.some(m=>status === m)
+			  return !_isSame
+      } else {
+        return true
+      }
+			
+		},
     onHeaderSearch (key,val) {
       this.param.content.pageNumber = 1
       this.param.content.where.tablefilter[key] = val

+ 0 - 1
src/components/normal-basic-layout/normal.vue

@@ -11,7 +11,6 @@
         <slot name="titleRight"></slot>
       </div>
       <div>
-<!--      <i class="el-icon-refresh" @click="refresh"></i>-->
         <slot name="refresh"></slot>
       </div>
     </div>

+ 22 - 0
src/router/SDrpManagement.js

@@ -48,6 +48,28 @@ const SDrpManagement = [
     },
     component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/ProductGroup/modules/GroupDetail/groupDetail')
   },
+  {
+    path: '/order',
+    name: 'order',
+    meta: {
+      title: '订货订单',
+      ast_nav:true,
+      keeproute: true
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/agentOrder/index'),
+    children:[
+      {
+        path: '/agent_orderDetails',
+        name: 'order',
+        meta: {
+          title: '订货订单',
+          ast_nav:true,
+          keeproute: true
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/agentOrder/details/index')
+      }
+    ]
+  },
   {
     path: '/salerPrivatecustomer',
     name: 'salerPrivatecustomer',

+ 6 - 0
src/template/menber/index.vue

@@ -67,6 +67,12 @@ export default {
     async listData () {
 			this.param.content.where.condition = this.search
       const res = await this.$api.requested(this.param)
+      if (!this.radio) {
+        res.data = res.data.filter(e=>{
+          if (e.isteamleader !== 1)
+            return e
+        })
+      }
       this.tableData = res.data
       this.total = res.total
       this.currentPage = res.pageNumber

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

@@ -0,0 +1,14 @@
+<template>
+  <div>
+    
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+
+</script>
+<style>
+</style>