瀏覽代碼

代码暂存

zhangqiOMG 2 年之前
父節點
當前提交
97bd4ac367

+ 8 - 1
src/HDrpManagement/stock/index.vue

@@ -13,10 +13,13 @@
       <div slot="custom"></div>
       <template v-slot:tbList="scope">
         <div>
-          {{scope.data.column.data[[scope.data.column.columnname]]}}
+          <span v-if="scope.data.column.columnname === 'isused'">{{scope.data.column.data[scope.data.column.columnname] == 1?'是':'否'}}</span>
+          <span v-else-if="scope.data.column.columnname === 'issalestock'">{{scope.data.column.data[scope.data.column.columnname] == 1?'是':'否'}}</span>
+          <span v-else>{{scope.data.column.data[scope.data.column.columnname]}}</span>
         </div>
       </template>
       <template v-slot:tbOpreation="scope">
+        <edit :data="scope.data.data"></edit>
       </template>
     </basicLayout>
   </div>
@@ -31,6 +34,7 @@
  * @param {object} apiId:{query:查询的接口id,del:删除的接口id} 
  * @param {Array} options:{label:描述,value:值} 
  */
+import edit from './modules/edit.vue'
 export default {
   data () {
     return {
@@ -38,6 +42,9 @@ export default {
       
     }
   },
+  components:{
+    edit
+  },
   methods:{
   }
 }

+ 40 - 10
src/HDrpManagement/stock/modules/add.vue

@@ -7,18 +7,32 @@
     direction="rtl"
     append-to-body>
     <div class="drawer__panel">
-      <el-form ref="form" :model="form" label-width="80px" size="small">
-        <el-form-item label="仓库名称" prop="name">
-          <el-input v-model="form.name"></el-input>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small">
+        <el-form-item label="仓库名称" prop="stockname">
+          <el-input v-model="form.stockname" placeholder="输入仓库名称"></el-input>
         </el-form-item>
-        <el-form-item label="仓库地址" prop="address">
-          <el-input v-model="form.address"></el-input>
+        <el-form-item label="是否启用">
+          <el-radio-group v-model="form.isused">
+            <el-radio label="1">启用</el-radio>
+            <el-radio label="0">停用</el-radio>
+          </el-radio-group>
         </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="submitForm">新增</el-button>
+        <el-form-item label="是否销售仓">
+          <el-radio-group v-model="form.issalestock">
+            <el-radio label="1">是</el-radio>
+            <el-radio label="0">否</el-radio>
+          </el-radio-group>
         </el-form-item>
+        <!-- <el-form-item>
+          <el-button type="primary" @click="submitForm">提交</el-button>
+          <el-button @click="resetForm">重置</el-button>
+        </el-form-item> -->
       </el-form>
     </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="submitForm" class="normal-btn-width">确 定</el-button>
+    </div>
   </el-drawer>
 </div>
 </template>
@@ -28,17 +42,33 @@ export default {
   data() {
     return {
       form: {
-        name: '',
-        address: ''
+        stockid: 0,
+        stockname: '',
+        isused: '1',
+        issalestock:'1'
+      },
+      rules: {
+        stockname: [
+          { required: true, message: '请输入仓库名称', trigger: 'blur' },
+          { min: 3, max: 5, message: '长度在 3 到 10 个字符', trigger: 'blur' }
+        ],
       },
       drawer:false
     }
   },
   methods: {
     submitForm() {
-      this.$refs.form.validate((valid) => {
+      this.$refs.form.validate(async (valid) => {
         if (valid) {
           // 提交表单
+          const res = await this.$api.requested({
+            "id": 20230104094704,
+            "content": this.form
+          })
+          this.tool.showMessage(()=>{
+            this.drawer = false
+            this.$emit('onSuccess')
+          })
         } else {
           console.log('error submit!!');
           return false;

+ 84 - 0
src/HDrpManagement/stock/modules/edit.vue

@@ -0,0 +1,84 @@
+<template>
+<div>
+  <el-button size="small" @click="onShow(drawer = true)" type="text">编 辑</el-button>
+  <el-drawer
+    title="编辑"
+    :visible.sync="drawer"
+    direction="rtl"
+    append-to-body>
+    <div class="drawer__panel">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small">
+        <el-form-item label="仓库名称" prop="stockname">
+          <el-input v-model="form.stockname" placeholder="输入仓库名称"></el-input>
+        </el-form-item>
+        <el-form-item label="是否启用">
+          <el-radio-group v-model="form.isused">
+            <el-radio :label="1">启用</el-radio>
+            <el-radio :label="0">停用</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="是否销售仓">
+          <el-radio-group v-model="form.issalestock">
+            <el-radio :label="1">是</el-radio>
+            <el-radio :label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <!-- <el-form-item>
+          <el-button type="primary" @click="submitForm">提交</el-button>
+          <el-button @click="resetForm">重置</el-button>
+        </el-form-item> -->
+      </el-form>
+    </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="submitForm" class="normal-btn-width">确 定</el-button>
+    </div>
+  </el-drawer>
+</div>
+</template>
+
+<script>
+export default {
+  props:['data'],
+  data() {
+    return {
+      form: {
+        stockid: 0,
+        stockname: '',
+        isused: '1',
+        issalestock:'1'
+      },
+      rules: {
+        stockname: [
+          { required: true, message: '请输入仓库名称', trigger: 'blur' },
+          { min: 3, max: 5, message: '长度在 3 到 10 个字符', trigger: 'blur' }
+        ],
+      },
+      drawer:false
+    }
+  },
+  methods: {
+    onShow () {
+      this.form = Object.assign({},this.form,this.data)
+    },
+    submitForm() {
+      this.$refs.form.validate(async (valid) => {
+        if (valid) {
+          // 提交表单
+          const res = await this.$api.requested({
+            "id": 20230104094704,
+            "content": this.form
+          })
+          this.tool.showMessage(()=>{
+            this.drawer = false
+            this.$emit('onSuccess')
+          })
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    }
+  }
+}
+</script>

+ 1 - 1
src/HManagement/marketing2/agent/details/modules/achievementTarget/index.vue

@@ -594,7 +594,7 @@ export default {
 .green{
   color:green
 }
->>> .el-form-item__label{
+ .el-form-item__label{
   font-size: 14px;
   color:rgb(163, 163, 163)
 }

+ 176 - 5
src/SDrpManagement/performanceGoals/index.vue

@@ -1,13 +1,184 @@
 <template>
-  <div>
-    <normalLayout>
-    </normalLayout>
-  </div>
+  <normalLayout>
+    <div class="container" slot="content">
+      <el-select class="inline-16" v-model="type" placeholder="请选择类型" size="small" @change="listData" clearable>
+        <el-option label="开票" value="1"></el-option>
+        <el-option label="订单" value="2"></el-option>
+        <el-option label="出货" value="3"></el-option>
+      </el-select>
+      <el-date-picker
+        class="normal-margin inline-16"
+        v-model="value3"
+        type="year"
+        value-format="yyyy"
+        placeholder="选择年份"
+        size="small"
+        @change="listData">
+      </el-date-picker>
+      <el-select v-model="tradefield" placeholder="请选择选择领域" size="small" @change="listData" clearable>
+        <el-option v-for="(item, index) in tradefieldOptions" :key="index" :label="item.tradefield"
+          :value="item.tradefield">
+        </el-option>
+      </el-select>
+      <div v-for="item in perfData" :key="item.index">
+        <el-card class="normal-margin" shadow="none" :body-style="{padding:'10px'}">
+          <div slot="header">{{item.tradefield}}</div>
+          <p class="normal-title mt-10">月度目标</p>
+          <el-table
+            class="normal-margin"
+            :data="item.month"
+            style="width: 100%"
+            size="mini"
+            stripe
+            border>
+            <el-table-column
+              prop="month"
+              label="月份">
+            </el-table-column>
+            <el-table-column
+              prop="a"
+              label="实际完成">
+            </el-table-column>
+            <el-table-column
+              prop="l"
+              label="基本目标">
+            </el-table-column>
+            <el-table-column
+              prop="h"
+              label="挑战目标">
+            </el-table-column>
+            <el-table-column
+              prop="pl"
+              label="基本比">
+              <template slot-scope="scope">
+                {{scope.row.pl}}%
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="ph"
+              label="挑战比">
+               <template slot-scope="scope">
+                {{scope.row.ph}}%
+              </template>
+            </el-table-column>
+          </el-table>
+          <p class="normal-title mt-10">季度目标</p>
+          <el-table
+            :data="item.quarter"
+            style="width: 100%"
+            size="mini"
+            stripe
+            border>
+            <el-table-column
+              prop="quarter"
+              label="季度">
+            </el-table-column>
+            <el-table-column
+              prop="a"
+              label="实际完成">
+            </el-table-column>
+            <el-table-column
+              prop="l"
+              label="基本目标">
+            </el-table-column>
+            <el-table-column
+              prop="h"
+              label="挑战目标">
+            </el-table-column>
+            <el-table-column
+              prop="pl"
+              label="基本比">
+               <template slot-scope="scope">
+                {{scope.row.pl}}%
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="ph"
+              label="挑战比">
+               <template slot-scope="scope">
+                {{scope.row.ph}}%
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-card>
+      </div>
+    </div>
+  </normalLayout>
 </template>
 
 <script>
 export default {
-
+  data () {
+    return {
+      perfData:[],
+      tradefieldOptions:[],
+      quarterData:{},
+      tradefield:'',
+      value3:String((new Date()).getFullYear()),
+      type:'1'
+    }
+  },
+  methods:{
+    async listData () {
+      this.perfData = []
+      const res = await this.$api.requested({
+        "id": 20230110151902,
+        "content": {
+            "type":this.type,//开票,订单,出货
+            "where": {
+              "year": this.value3,
+              "tradefield": this.tradefield
+            }
+        },
+      })
+      res.data.forEach(element => {
+        this.createTableData(element)
+      });
+    },
+    async fieldData () {
+      const res = await this.$api.requested({
+        "id": 20221223141802,
+        "content": {
+          "pageSize": 999,
+        }
+      })
+      this.tradefieldOptions = res.data
+    },
+    createTableData (data) {
+      let arr = []
+      let arr_s = []
+      for (let index = 1; index < 13; index++) {
+        arr.push({
+          month:index + '月',
+          a:data[`m${index}a`],
+          l:data[`m${index}l`],
+          h:data[`m${index}h`],
+          pl:data[`m${index}pl`],
+          ph:data[`m${index}ph`]
+        })
+      }
+      for (let index = 1; index < 5; index++) {
+        arr_s.push({
+          quarter:index + '季度',
+          a:data[`s${index}a`],
+          l:data[`s${index}l`],
+          h:data[`s${index}h`],
+          pl:data[`s${index}pl`],
+          ph:data[`s${index}ph`]
+        })
+      }
+      this.perfData.push({
+        tradefield:data.tradefield,
+        month:arr,
+        quarter:arr_s
+      })
+      console.log(this.perfData)
+    }
+  },
+  mounted () {
+    this.listData()
+    this.fieldData()
+  }
 }
 
 </script>

+ 535 - 0
src/SDrpManagement/performanceGoals_saler/index.vue

@@ -0,0 +1,535 @@
+<template>
+   <normalLayout>
+    <div class="container" slot="content">
+      <el-select class="inline-16" v-model="type" placeholder="请选择类型" size="small" @change="listData" clearable>
+        <el-option label="开票" value="1"></el-option>
+        <el-option label="订单" value="2"></el-option>
+        <el-option label="出货" value="3"></el-option>
+      </el-select>
+      <el-date-picker
+        class="normal-margin inline-16"
+        v-model="value3"
+        type="year"
+        value-format="yyyy"
+        placeholder="选择年份"
+        size="small"
+        @change="listData">
+      </el-date-picker>
+      <el-select v-model="tradefield" placeholder="请选择选择领域" size="small" @change="listData" clearable>
+        <el-option v-for="(item, index) in tradefieldOptions" :key="index" :label="item.tradefield"
+          :value="item.tradefield">
+        </el-option>
+      </el-select>
+      <el-table
+        :data="tableData"
+        style="width: 100%;"
+        height="900px"
+        size="small">
+      <el-table-column label="年度" fixed>
+
+        <template slot-scope="scope">
+          <p class="center d-text">{{scope.row.year}}</p>
+        </template>
+
+      </el-table-column>
+      <el-table-column label="领域" fixed>
+
+        <template slot-scope="scope">
+          <p class="center d-text">{{scope.row.tradefield}}</p>
+        </template>
+
+      </el-table-column>
+      <el-table-column label="经销商" fixed>
+
+        <template slot-scope="scope">
+          <p class="center d-text">{{scope.row.enterprisename}}</p>
+        </template>
+
+      </el-table-column>
+      
+      <el-table-column
+          label="目标/实际"
+          width="100">
+        <template>
+          <p class="center d-text">目标</p>
+          <p class="border"></p>
+          <p class="center d-text">实际</p>
+        </template>
+      </el-table-column>
+      <el-table-column label="年度(万元)">
+        <el-table-column
+            prop="y1l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.y1l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.y1a}}</p>
+            <p class="center" :class="scope.row.y1pl < 0?'green':'red'">({{scope.row.y1pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="y1h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.y1h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.y1a}}</p>
+            <p class="center" :class="scope.row.y1ph < 0?'green':'red'">({{scope.row.y1ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="第一季度(万元)">
+        <el-table-column
+            prop="s1l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s1l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s1a}}</p>
+            <p class="center" :class="scope.row.s1pl < 0?'green':'red'">({{scope.row.s1pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="s1h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s1h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s1a}}</p>
+            <p class="center" :class="scope.row.s1ph < 0?'green':'red'">({{scope.row.s1ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="一月(万元)">
+        <el-table-column
+            prop="m1l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m1l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m1a}}</p>
+            <p class="center" :class="scope.row.m1pl < 0?'green':'red'">({{scope.row.m1pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m1h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m1h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m1a}}</p>
+            <p class="center" :class="scope.row.m1ph < 0?'green':'red'">({{scope.row.m1ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="二月(万元)">
+        <el-table-column
+            prop="m2l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m2l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m2a}}</p>
+            <p class="center" :class="scope.row.m2pl < 0?'green':'red'">({{scope.row.m2pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m2h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m2h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m2a}}</p>
+            <p class="center" :class="scope.row.m2ph < 0?'green':'red'">({{scope.row.m2ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="三月(万元)">
+        <el-table-column
+            prop="m3l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m3l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m3a}}</p>
+            <p class="center" :class="scope.row.m3pl < 0?'green':'red'">({{scope.row.m3pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m3h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m3h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m3a}}</p>
+            <p class="center" :class="scope.row.m3ph < 0?'green':'red'">({{scope.row.m3ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="第二季度(万元)">
+        <el-table-column
+            prop="s2l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s2l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s2a}}</p>
+            <p class="center" :class="scope.row.s2pl < 0?'green':'red'">({{scope.row.s2pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="s2h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s2h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s2a}}</p>
+            <p class="center" :class="scope.row.s2ph < 0?'green':'red'">({{scope.row.s2ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="四月(万元)">
+        <el-table-column
+            prop="m4l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m4l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m4a}}</p>
+            <p class="center" :class="scope.row.m4pl < 0?'green':'red'">({{scope.row.m4pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m4h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m4h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m4a}}</p>
+            <p class="center" :class="scope.row.m4ph < 0?'green':'red'">({{scope.row.m4ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="五月(万元)">
+        <el-table-column
+            prop="m5l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m5l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m5a}}</p>
+            <p class="center" :class="scope.row.m5pl < 0?'green':'red'">({{scope.row.m5pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m5h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m5h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m5a}}</p>
+            <p class="center" :class="scope.row.m5ph < 0?'green':'red'">({{scope.row.m5ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="六月(万元)">
+        <el-table-column
+            prop="m6l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m6l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m6a}}</p>
+            <p class="center" :class="scope.row.m6pl < 0?'green':'red'">({{scope.row.m6pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m6h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m6h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m6a}}</p>
+            <p class="center" :class="scope.row.m6ph < 0?'green':'red'">({{scope.row.m6ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="第三季度(万元)">
+        <el-table-column
+            prop="s3l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s3l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s3a}}</p>
+            <p class="center" :class="scope.row.s3pl < 0?'green':'red'">({{scope.row.s3pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="s3h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s3h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s3a}}</p>
+            <p class="center" :class="scope.row.s3ph < 0?'green':'red'">({{scope.row.s3ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="七月(万元)">
+        <el-table-column
+            prop="m7l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m7l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m7a}}</p>
+            <p class="center" :class="scope.row.m7pl < 0?'green':'red'">({{scope.row.m7pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m7h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m7h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m7a}}</p>
+            <p class="center" :class="scope.row.m7ph < 0?'green':'red'">({{scope.row.m7ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="八月(万元)">
+        <el-table-column
+            prop="m8l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m8l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m8a}}</p>
+            <p class="center" :class="scope.row.m8pl < 0?'green':'red'">({{scope.row.m8pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m8h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m8h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m8a}}</p>
+            <p class="center" :class="scope.row.m8ph < 0?'green':'red'">({{scope.row.m8ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="九月(万元)">
+        <el-table-column
+            prop="m9l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m9l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m9a}}</p>
+            <p class="center" :class="scope.row.m9pl < 0?'green':'red'">({{scope.row.m9pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m9h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m9h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m9a}}</p>
+            <p class="center" :class="scope.row.m9ph < 0?'green':'red'">({{scope.row.m9ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="第四季度(万元)">
+        <el-table-column
+            prop="s4l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s4l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s4a}}</p>
+            <p class="center" :class="scope.row.s4pl < 0?'green':'red'">({{scope.row.s4pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="s4h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.s4h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.s4a}}</p>
+            <p class="center" :class="scope.row.s4ph < 0?'green':'red'">({{scope.row.s4ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="十月(万元)">
+        <el-table-column
+            prop="m10l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m10l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m10a}}</p>
+            <p class="center" :class="scope.row.m10pl < 0?'green':'red'">({{scope.row.m10pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m10h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m10h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m10a}}</p>
+            <p class="center" :class="scope.row.m10ph < 0?'green':'red'">({{scope.row.m10ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="十一月(万元)">
+        <el-table-column
+            prop="m11l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m11l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m11a}}</p>
+            <p class="center" :class="scope.row.m11pl < 0?'green':'red'">({{scope.row.m11pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m11h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m11h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m11a}}</p>
+            <p class="center" :class="scope.row.m11ph < 0?'green':'red'">({{scope.row.m11ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="十二月(万元)">
+        <el-table-column
+            prop="m12l"
+            label="基本"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m12l}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m12a}}</p>
+            <p class="center" :class="scope.row.m12pl < 0?'green':'red'">({{scope.row.m12pl}}%)</p>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="m12h"
+            label="挑战"
+            width="120">
+          <template slot-scope="scope">
+            <p class="center d-text">{{scope.row.m12h}}</p>
+            <p class="border"></p>
+            <p class="center">{{scope.row.m12a}}</p>
+            <p class="center" :class="scope.row.m12ph < 0?'green':'red'">({{scope.row.m12ph}}%)</p>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      </el-table>
+    </div>
+   </normalLayout>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      tradefieldOptions:[],
+      tableData:[],
+      tradefield:'',
+      value3:String((new Date()).getFullYear()),
+      type:'1'
+    }
+  },
+  methods:{
+    async listData () {
+      this.perfData = []
+      const res = await this.$api.requested({
+        "id": 20230111163102,
+        "content": {
+            "type":this.type,//开票,订单,出货
+            "where": {
+              "year": this.value3,
+              "tradefield": this.tradefield
+            }
+        },
+      })
+      this.tableData = res.data
+    },
+    async fieldData () {
+      const res = await this.$api.requested({
+        "id": 20221223141802,
+        "content": {
+          "pageSize": 999,
+        }
+      })
+      this.tradefieldOptions = res.data
+    },
+  },
+  mounted () {
+    this.listData()
+    this.fieldData()
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.d-text{
+  height: 46px;
+  line-height: 46px;
+}
+.border{
+  border:1px solid #c1bfbf;
+  transform: scale(2,.2);
+}
+.center{
+  text-align: center;
+}
+.red{
+  color:red
+}
+.green{
+  color:green
+}
+</style>

+ 140 - 0
src/SDrpManagement/rebatesettlement/details/index.vue

@@ -0,0 +1,140 @@
+<template>
+  <div>
+    <basicDetails
+        ref="details"
+        :titleText="`单号:${mainData.billno}`"
+        :oldFormPath="{edit:'HDrpManagement/rebatesettlement/modules'}"
+        :editData="mainData"
+        :mainAreaData="mainAreaData"
+        turnPageId="20230104194002"
+        idname="sa_rebatesettlementid"
+        ownertable="sa_rebatesettlement"
+        delApiId="20230104193402"
+        tags=""
+        :tabs="['明细信息']"
+        @pageChange="pageChange"
+        @onEditSuccess="queryMainData($route.query.id)">
+      <div slot="tags">
+      </div>
+      <div slot="customOperation" >
+        <el-button v-if="tool.checkAuth($route.name,'check')" class="inline-16" size="mini" type="primary" :disabled="mainData.status !== '新建'" @click="checkBill">审 核</el-button>
+      </div>
+      <div slot="slot0" >
+        <rebatemx></rebatemx>
+      </div>
+      <div slot="slot1" >
+      </div>
+    </basicDetails>
+  </div>
+</template>
+
+<script>
+import rebatemx from './tabs/rebatesettlementmx.vue'
+export default {
+  name: "detail",
+  data() {
+    return {
+      mainData:{},
+      mainAreaData:{}
+    }
+  },
+  components:{
+    rebatemx
+  },
+  methods:{
+    async queryMainData(id) {
+      const res = await this.$api.requested({
+        "id": "20230104200802",
+        "content": {
+          "sa_rebatesettlementid": this.$route.query.id
+        },
+      })
+      this.mainData = res.data
+      this.changeDataStructure()
+    },
+    changeDataStructure() {
+      this.mainAreaData = [
+        {
+          label:'结算企业',
+          value:this.mainData.enterprisename
+        },
+        {
+          label:'状态',
+          value:this.mainData.status
+        },
+        {
+          label:'单据日期',
+          value:this.mainData.billdate
+        },
+        {
+          label:'合同编号',
+          value:this.mainData.billno_contract
+        },
+        {
+          label:'关联订单',
+          value:this.mainData.sonum
+        },
+        {
+          label:'订单金额',
+          value:this.mainData.amount
+        },
+        {
+          label:'订单金额比例',
+          value:this.mainData.calculatemodel
+        },
+        {
+          label:'产品折扣',
+          value:this.mainData.productdiscount
+        },
+        {
+          label:'居间费',
+          value:this.mainData.rebate
+        }
+      ]
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange (id,rowindex,tabIndex) {
+      this.flag = false
+      tabIndex = this.$route.query.tabIndex
+      this.$router.replace({path:'/customerDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
+      this.queryMainData(id)
+    },
+    onSuccess(){
+      this.visible = false
+      this.queryMainData(this.$route.query.id)
+      this.$emit('onSuccess')
+    },
+    checkBill () {
+      this.$confirm('确定审核该单据吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        const res = await this.$api.requested({
+          "id": "20230104191602",
+          "content": {
+            "sa_rebatesettlementid": this.$route.query.id
+          }
+        })
+        this.tool.showMessage(res,()=>{
+          this.queryMainData()
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        });          
+      });
+    }
+  },
+  mounted () {
+    this.queryMainData(this.$route.query.id)
+  },
+  created() {
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 120 - 0
src/SDrpManagement/rebatesettlement/details/tabs/rebatesettlementmx.vue

@@ -0,0 +1,120 @@
+<template>
+  <div>
+    <el-table
+      :data="tableData"
+      border
+      size="small"
+      style="width: 100%">
+      <el-table-column
+        prop="itemname"
+        label="产品"
+        width="itemname">
+      </el-table-column>
+      <el-table-column
+        prop="qty"
+        label="数量"
+        width="90">
+      </el-table-column>
+      <el-table-column
+        prop="marketprice"
+        label="牌价"
+        width="90">
+      </el-table-column>
+      <el-table-column
+        prop="discountrate"
+        label="折扣"
+        width="90">
+      </el-table-column>
+      <el-table-column
+        prop="price"
+        label="单价"
+        width="90">
+      </el-table-column>
+      <el-table-column
+        prop="amount"
+        label="金额"
+        width="100">
+      </el-table-column>
+      <el-table-column
+        prop="rebate_discountrate"
+        label="居间产品折扣"
+        width="150">
+      </el-table-column>
+      <el-table-column
+        prop="rebate_price"
+        label="居间产品单价"
+        width="150">
+      </el-table-column>
+      <el-table-column
+        prop="rebate_unit_price"
+        label="居间单价"
+        width="120">
+      </el-table-column>
+      <el-table-column
+        prop="rebate"
+        label="居间费"
+        width="120">
+      </el-table-column>
+    </el-table>
+    <div class="container normal-panel" style="text-align:right">
+      <el-pagination
+        background
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="currentPage"
+        :page-sizes="[20, 50, 100, 200]"
+        layout="total,sizes, prev, pager, next, jumper"
+        :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      rebHeadData:{},
+      tableData:[],
+      param:{
+        "pageNumber": 1,
+        "pageSize": 20,
+      },
+      total:0,
+      currentPage:0
+    }
+  },
+  methods:{
+    async listData () {
+      const res = await this.$api.requested({
+        "id": "20230105092302",
+        "content": {
+          "sa_rebatesettlementid": this.$route.query.id,
+          "pageNumber": this.param.pageNumber,
+          "pageSize": this.param.pageSize,
+          "where": {
+            "condition": ""
+          }
+        },
+      })
+      this.tableData = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      this.param.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      this.param.pageNumber = val
+      this.listData()
+    },
+  },
+  mounted () {
+    this.listData()
+  }
+}
+
+</script>
+<style>
+</style>

+ 52 - 0
src/SDrpManagement/rebatesettlement/index.vue

@@ -0,0 +1,52 @@
+
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      :oldFormPath="{
+        add:'SDrpManagement/rebatesettlement/modules'
+      }"
+      tableName="rebatesettlement" 
+      idName="sa_rebatesettlementid" 
+      :apiId="{query:20230104194002,del:20230104193402}"
+      :autoQuery="false"
+      :options="options">
+      <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:{
+  },
+  mounted () {
+    this.$refs.basicLayout.param.content.isCheck = 1
+    this.$refs.basicLayout.listData()
+  }
+}
+
+</script>
+<style>
+</style>

+ 159 - 0
src/SDrpManagement/rebatesettlement/modules/add.vue

@@ -0,0 +1,159 @@
+<template>
+<div>
+  <el-button type="primary" size="small" @click="drawer = true">新 建</el-button>
+  <el-drawer
+    title="新建"
+    :visible.sync="drawer"
+    direction="rtl"
+    append-to-body
+    size="900px">
+    <div class="drawer__panel">
+      <el-row :gutter="20">
+        <el-form ref="form" :model="form" :rules="rules" :status-icon="false" label-width="80px" size="small">
+          <el-col :span="8">
+            <el-form-item label="结算企业" prop="sys_enterpriseid">
+              <enterpriseTemp ref="ent" @rowClick="rowClick"></enterpriseTemp>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="居间合同" prop="sa_contractid">
+              <contractTemp ref="con" :id="form.sys_enterpriseid" @rowContractClick="rowContractClick"></contractTemp>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="订单信息" prop="ownerid">
+              <orderTemp ref="order" :id="form.sa_contractid" @orderRowClick="orderRowClick"></orderTemp>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="单据日期">
+              <el-date-picker
+                style="width:100%"
+                v-model="form.billdate"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="结算方式" prop="settlementmode">
+              <el-select style="width:100%" v-model="form.settlementmode" placeholder="请选择结算方式">
+                <el-option label="线上" value="线上"></el-option>
+                <el-option label="线下" value="线下"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input type="textarea" :autosize="{minRows:4}" placeholder="请输入备注"></el-input>
+            </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 enterpriseTemp from '@/template/enterprise/index.vue'
+import contractTemp from '@/template/rebateCanUseContract/index.vue'
+import orderTemp from '@/template/rebateCanUseOrder/index.vue'
+
+export default {
+  
+  data() {
+    var checkSacontractid = (rule, value, callback) => {
+      if (!this.form.sys_enterpriseid) {
+        return callback(new Error('请先选择结算企业'));
+      }
+      if (!value) {
+        return callback(new Error('请选择居间合同'));
+      }
+      callback();
+    };
+    var checkSaorderid = (rule, value, callback) => {
+      if (!this.form.sa_contractid) {
+        return callback(new Error('请先选择居间合同'));
+      }
+      console.log(value)
+      if (!value) {
+        return callback(new Error('请选择订单'));
+      }
+      callback();
+    };
+    return {
+      form: {
+        "sa_rebatesettlementid": 0,
+        "sys_enterpriseid": "", //结算企业档案ID
+        "ownertable": "sa_order", //数据表
+        "ownerid": "", //数据id
+        "billdate": (new Date()).toISOString().split('T')[0], //结算日期
+        "remarks": "",
+        "sa_contractid": "", //居间合同ID
+        "settlementmode": "线上" //结算方式,线下、在线(在线时生成收入凭证)
+      },
+      rules:{
+        sys_enterpriseid: [
+          { required: true, message: '请选择结算企业', trigger: 'change' },
+        ],
+        sa_contractid:[
+          { validator: checkSacontractid, trigger: 'blur' }
+        ],
+        ownerid:[
+          { validator: checkSaorderid, trigger: 'blur' }
+        ],
+        settlementmode:[
+          { required: true, message: '请选择结算方式', trigger: 'blur' },
+        ]
+      },
+      drawer:false
+    }
+  },
+  components:{
+    enterpriseTemp,
+    contractTemp,
+    orderTemp
+  },
+  methods: {
+    async submitForm() {
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+      const res = await this.$api.requested({"id": "20230104180102","content":this.form})
+      this.tool.showMessage(res,()=>{
+        this.drawer = false
+        this.$emit('onSuccess')
+      })
+    },
+    rowClick (row) {
+      this.form.sys_enterpriseid = row.sys_enterpriseid
+      this.$refs.con.form.title = this.$refs.order.form.sonum = ''
+      this.form.sa_contractid = this.form.ownerid = ''
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+    },
+    rowContractClick (row) {
+      this.form.sa_contractid = row.sa_contractid
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+    },
+    orderRowClick (row) {
+      this.form.ownerid = row.sa_orderid
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+    },
+    resetForm () {
+      this.$refs.ent.form = this.$refs.con.form = this.$refs.order.form = {}
+    }
+  }
+}
+</script>

+ 169 - 0
src/SDrpManagement/rebatesettlement/modules/edit.vue

@@ -0,0 +1,169 @@
+<template>
+<div>
+  <el-button :disabled="data.status !== '新建'" type="primary" size="mini" @click="onShow()">编 辑</el-button>
+  <el-drawer
+    title="编辑"
+    :visible.sync="drawer"
+    direction="rtl"
+    append-to-body
+    size="900px">
+    <div class="drawer__panel">
+      <el-row :gutter="20">
+        <el-form ref="form" :model="form" :rules="rules" :status-icon="false" label-width="80px" size="small">
+          <el-col :span="8">
+            <el-form-item label="结算企业" prop="sys_enterpriseid">
+              <enterpriseTemp ref="ent" @rowClick="rowClick"></enterpriseTemp>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="居间合同" prop="sa_contractid">
+              <contractTemp ref="con" :id="form.sys_enterpriseid" @rowContractClick="rowContractClick"></contractTemp>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="订单信息" prop="ownerid">
+              <orderTemp ref="order" :id="form.sa_contractid" @orderRowClick="orderRowClick"></orderTemp>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="单据日期">
+              <el-date-picker
+                style="width:100%"
+                v-model="form.billdate"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="结算方式" prop="settlementmode">
+              <el-select style="width:100%" v-model="form.settlementmode" placeholder="请选择结算方式">
+                <el-option label="线上" value="线上"></el-option>
+                <el-option label="线下" value="线下"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input type="textarea" :autosize="{minRows:4}" placeholder="请输入备注"></el-input>
+            </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 enterpriseTemp from '@/template/enterprise/index.vue'
+import contractTemp from '@/template/rebateCanUseContract/index.vue'
+import orderTemp from '@/template/rebateCanUseOrder/index.vue'
+
+export default {
+  props:['data'],
+  data() {
+    var checkSacontractid = (rule, value, callback) => {
+      if (!this.form.sys_enterpriseid) {
+        return callback(new Error('请先选择结算企业'));
+      }
+      if (!value) {
+        return callback(new Error('请选择居间合同'));
+      }
+      callback();
+    };
+    var checkSaorderid = (rule, value, callback) => {
+      if (!this.form.sa_contractid) {
+        return callback(new Error('请先选择居间合同'));
+      }
+      console.log(value)
+      if (!value) {
+        return callback(new Error('请选择订单'));
+      }
+      callback();
+    };
+    return {
+      form: {
+        "sa_rebatesettlementid": 0,
+        "sys_enterpriseid": "", //结算企业档案ID
+        "ownertable": "sa_order", //数据表
+        "ownerid": "", //数据id
+        "billdate": (new Date()).toISOString().split('T')[0], //结算日期
+        "remarks": "",
+        "sa_contractid": "", //居间合同ID
+        "settlementmode": "线上" //结算方式,线下、在线(在线时生成收入凭证)
+      },
+      rules:{
+        sys_enterpriseid: [
+          { required: true, message: '请选择结算企业', trigger: 'change' },
+        ],
+        sa_contractid:[
+          { validator: checkSacontractid, trigger: 'blur' }
+        ],
+        ownerid:[
+          { validator: checkSaorderid, trigger: 'blur' }
+        ],
+        settlementmode:[
+          { required: true, message: '请选择结算方式', trigger: 'blur' },
+        ]
+      },
+      drawer:false
+    }
+  },
+  components:{
+    enterpriseTemp,
+    contractTemp,
+    orderTemp
+  },
+  methods: {
+    onShow () {
+      this.drawer = true
+      this.form = Object.assign({},this.form,this.data)
+      setTimeout(() => {
+        this.$refs.ent.form.enterprisename = this.data.enterprisename
+        this.$refs.con.form.title = this.data.billno_contract
+        this.$refs.order.form.sonum = this.data.sonum
+      }, 500);
+      
+    },
+    async submitForm() {
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+      const res = await this.$api.requested({"id": "20230104180102","content":this.form})
+      this.tool.showMessage(res,()=>{
+        this.drawer = false
+        this.$emit('onSuccess')
+      })
+    },
+    rowClick (row) {
+      this.form.sys_enterpriseid = row.sys_enterpriseid
+      this.$refs.con.form.title = this.$refs.order.form.sonum = ''
+      this.form.sa_contractid = this.form.ownerid = ''
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+    },
+    rowContractClick (row) {
+      this.form.sa_contractid = row.sa_contractid
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+    },
+    orderRowClick (row) {
+      this.form.ownerid = row.sa_orderid
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false;
+      });
+    },
+    resetForm () {
+      this.$refs.ent.form = this.$refs.con.form = this.$refs.order.form = {}
+    }
+  }
+}
+</script>

+ 9 - 5
src/SDrpManagement/shopCart/modules/confirmOrder.vue

@@ -55,8 +55,8 @@
             </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>
+            <p><span class="inline-16"><b>{{defaultData.re_info?defaultData.re_info.name:''}}</b></span><small>{{defaultData.re_info?defaultData.re_info.phonenumber:''}}</small></p>
+            <small>{{defaultData.re_info?defaultData.re_info.province:''}}{{defaultData.re_info?defaultData.re_info.city:''}}{{defaultData.re_info?defaultData.re_info.county:''}}{{defaultData.re_info ?defaultData.re_info.address:'--'}}</small>
           </div>
         </div>
         <div style="flex:1">
@@ -259,7 +259,13 @@ export default {
       logisticcomlist:[],
       financiallist:[],
       defaultData:{
-        re_info:{},
+        re_info:{
+          name:'',
+          phonenumber:'',
+          province:'',
+          city:'',
+          county:''
+        },
         logist_info:{},
         fin_info:{},
         account_index:0
@@ -336,7 +342,6 @@ export default {
       this.financiallist = res.data
       this.defaultData.fin_info = res.data[0]
     },
-
     // 提交订单
     async onSubmit() {
       const res = await this.$api.requested({
@@ -360,7 +365,6 @@ export default {
         },
       })
       this.tool.showMessage(res,()=>{
-        
         this.drawer = false
       })
     },

+ 1 - 1
src/SDrpManagement/shopCart/modules/total.vue

@@ -45,7 +45,7 @@ export default {
       })
     },
     confirmOrder () {
-      console.log(this.data)
+      // console.log(this.data)
       if (this.data.length === 0) return this.$message({
         message:'请先选择要下单的产品!',
         type:'error'

+ 84 - 0
src/SManagement/setenterpriseInfo/index.vue

@@ -0,0 +1,84 @@
+<template>
+    <normalLayout>
+      <div class="container" slot="content">
+        <el-button class="normal-margin" type="primary" size="small">编 辑</el-button>
+        <el-descriptions class="normal-margin" :labelStyle="{width:'120px'}" title="" :column="2" size="medium" border>
+          <el-descriptions-item>
+            <template slot="label">
+              企业名称
+            </template>
+            {{enterpriseInfo.enterprisename}}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template slot="label">
+              企业简称
+            </template>
+            {{enterpriseInfo.abbreviation}}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template slot="label">
+              联系人
+            </template>
+            {{enterpriseInfo.contact}}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template slot="label">
+              联系电话
+            </template>
+            {{enterpriseInfo.phonenumber}}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template slot="label">
+              地址
+            </template>
+            {{enterpriseInfo.province}}{{enterpriseInfo.city}}{{enterpriseInfo.county}}{{enterpriseInfo.address}}
+          </el-descriptions-item>
+        </el-descriptions>
+        <el-tabs v-model="activeName">
+          <el-tab-pane label="收货地址" name="first">
+            <setAddress></setAddress>
+          </el-tab-pane>
+          <el-tab-pane label="财务信息" name="second">
+            <financial :mainData="enterpriseInfo"></financial>
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+    </normalLayout>
+</template>
+
+<script>
+import financial from '@/components/financialInfo/index.vue'
+import setAddress from './modules/address/list.vue'
+export default {
+  data () {
+    return {
+      activeName:'first',
+      enterpriseInfo:{}
+    }
+  },
+  components:{
+    financial,
+    setAddress
+  },
+  methods:{
+    async enterpriseData () {
+      const res = await this.$api.requested({
+        "id": 20221022165203,
+        "content": {}
+      })
+      this.enterpriseInfo = res.data
+    }
+  },
+  mounted () {
+    this.enterpriseData()
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.label-width{
+  width: 120px;
+}
+</style>

+ 164 - 0
src/SManagement/setenterpriseInfo/modules/address/add.vue

@@ -0,0 +1,164 @@
+<template>
+  <div class="normal-margin">
+    <el-button type="primary" size="small" @click="onShow(dialogFormVisible = true)">添加地址</el-button>
+    <el-dialog title="新建地址" append-to-body :visible.sync="dialogFormVisible" width="800px">
+      <el-row :gutter="20">
+        <el-form :model="form" ref="form" label-position="right" label-width="90px" size="small">
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="name" :rules="[
+              { required: true, message: '联系人姓名不能为空'},
+            ]">
+              <el-input v-model="form.name" autocomplete="on" placeholder="输入联系人姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="性别">
+              <el-select v-model="form.sex" style="width:100%">
+                <el-option v-for="item in sys_options" :key="item.index" :value="item.value" :label="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.phonenumber" autocomplete="on" placeholder="输入联系人手机号码"></el-input>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="生日">
+              <el-date-picker
+                style="width:100%"
+                v-model="form.birthday"
+                value-format="yyyy-MM-dd"
+                type="date"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col> -->
+          <!-- <el-col :span="12">
+            <el-form-item label="邮箱" prop="email" :rules="[
+              { pattern:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, message: '请输入正确邮箱',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.email" autocomplete="on" placeholder="输入联系人邮箱"></el-input>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="省市县" prop="value" :rules="[
+          { required: true, message: '选择省市县', trigger: 'change' },
+          ]">
+              <el-cascader
+                style="width:100%"
+                v-model="form.value"
+                :options="basicData.data().areaData"
+                @change="cascaderChange" clearable>
+              </el-cascader>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="地址">
+              <el-input v-model="form.address" type="textarea" :rows="3" autocomplete="on" placeholder="输入地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="部门">
+              <el-input v-model="form.depname" autocomplete="on" placeholder="输入联系人部门"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="职位">
+              <el-input v-model="form.position" autocomplete="on" placeholder="输入联系人职位"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="是否负责人">
+              <el-checkbox v-model="form.isleader" :true-label="1" :false-label="0"></el-checkbox>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input v-model="form.remarks" autocomplete="on" type="textarea" :rows="3" placeholder="输入联系人备注"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" style="width:120px" @click="dialogFormVisible = false">取 消</el-button>
+        <el-button size="small" style="width:120px" type="primary" @click="submitAddress()">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+
+export default {
+  props:['mainData'],
+  data () {
+    return {
+      dialogFormVisible:false,
+      form:{
+        "contactsid":0, 
+        "sys_enterpriseid":null,
+        "name":"",
+        "sex":"男",
+        "depname":"",
+        "position":"",
+        "isleader":1,
+        "birthday":"",
+        "phonenumber":"",
+        "email":"",
+        "province":"",
+        "city":"",
+        "county":"",
+        "address":"",
+        "remarks":"",
+        "workaddress":1,
+        "value":[]
+      }
+    }
+  },
+  computed:{
+    ...mapGetters({
+      sys_options:'sys_options'
+    })
+  },
+  methods:{
+    onShow () {
+      this.$store.dispatch('optiontypeselect','sex')
+    },
+    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]})
+      
+    },
+    submitAddress () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false;
+        this.form.sys_enterpriseid = this.mainData.sys_enterpriseid
+        const res = await this.$api.requested({
+          "id": "20221009155703",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+
+          this.$emit('onAddSuccess')
+           this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+
+        })
+      });
+    }
+  },
+  mounted () {
+    
+  }
+}
+
+</script>
+<style>
+</style>

+ 169 - 0
src/SManagement/setenterpriseInfo/modules/address/edit.vue

@@ -0,0 +1,169 @@
+<template>
+  <div>
+    <el-button type="text" size="small" @click="onShow(dialogFormVisible = true)">编 辑</el-button>
+    <el-dialog title="新建联系人" :visible.sync="dialogFormVisible" append-to-body width="50%">
+      <el-row :gutter="20">
+        <el-form :model="form" ref="form" label-position="right" label-width="90px" size="small">
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="name" :rules="[
+              { required: true, message: '联系人姓名不能为空'},
+            ]">
+              <el-input v-model="form.name" autocomplete="on" placeholder="输入联系人姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="性别">
+              <el-select v-model="form.sex" style="width:100%">
+                <el-option v-for="item in sys_options" :key="item.index" :value="item.value" :label="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="phonenumber" :rules="[
+              { required: true, message: '手机号码不能为空'},
+              { pattern:/^1[3-9][0-9]\d{8}$/, message: '请输入正确手机号码',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.phonenumber" autocomplete="on" placeholder="输入联系人手机号码"></el-input>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="生日">
+              <el-date-picker
+                style="width:100%"
+                v-model="form.birthday"
+                value-format="yyyy-MM-dd"
+                type="date"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col> -->
+          <!-- <el-col :span="12">
+            <el-form-item label="邮箱" prop="email" :rules="[
+              { pattern:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, message: '请输入正确邮箱',trigger: 'blur' }
+            ]">
+              <el-input v-model="form.email" autocomplete="on" placeholder="输入联系人邮箱"></el-input>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="省市县" prop="value" :rules="[
+          { required: true, message: '选择省市县', trigger: 'change' },
+          ]">
+              <el-cascader
+                style="width:100%"
+                v-model="form.value"
+                :options="basicData.data().areaData"
+                @change="cascaderChange" clearable>
+              </el-cascader>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="地址">
+              <el-input v-model="form.address" type="textarea" :rows="3" autocomplete="on" placeholder="输入地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="部门">
+              <el-input v-model="form.depname" autocomplete="on" placeholder="输入联系人部门"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="职位">
+              <el-input v-model="form.position" autocomplete="on" placeholder="输入联系人职位"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="是否负责人">
+              <el-checkbox v-model="form.isleader" :true-label="1" :false-label="0"></el-checkbox>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input v-model="form.remarks" autocomplete="on" type="textarea" :rows="3" placeholder="输入联系人备注"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" style="width:120px" @click="dialogFormVisible = false">取 消</el-button>
+        <el-button size="small" style="width:120px" type="primary" @click="submitAddress()">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from 'vuex'
+
+export default {
+  props:['mainData','row'],
+  data () {
+    return {
+      dialogFormVisible:false,
+      form:{
+        "contactsid":0, 
+        "sys_enterpriseid":null,
+        "name":"",
+        "sex":"男",
+        "depname":"",
+        "position":"",
+        "isleader":1,
+        "birthday":'2022-01-01',
+        "phonenumber":"",
+        "email":"",
+        "province":"",
+        "city":"",
+        "county":"",
+        "address":"",
+        "remarks":"",
+        "workaddress":1,
+        "value":[]
+      }
+    }
+  },
+  computed:{
+    ...mapGetters({
+      sys_options:'sys_options'
+    })
+  },
+  methods:{
+    onShow () {
+      this.$store.dispatch('optiontypeselect','sex')
+      
+      let arr = ['province','city','county']
+      arr.forEach(e=>{
+        this.row[e] !== '' ?this.form.value.push(this.row[e]):''
+      })
+      this.form = Object.assign({},this.form,this.row)
+    },
+    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]})
+      
+    },
+    submitAddress () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false;
+        this.form.sys_enterpriseid = this.mainData.sys_enterpriseid
+        const res = await this.$api.requested({
+          "id": "20221009155703",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+
+          this.$emit('onAddSuccess')
+           this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+
+        })
+      });
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+</style>

+ 81 - 0
src/SManagement/setenterpriseInfo/modules/address/list.vue

@@ -0,0 +1,81 @@
+<template>
+  <div>
+    <addContact @onAddSuccess="listData" :mainData="mainData"></addContact>
+    <tableLayout :layout="tablecols" :data="list" :custom="true" height="calc(100vh - 455px)" fixedName="operation">
+      <template v-slot:customcol="scope">
+        <p v-if="scope.column.columnname === 'province'">
+          {{scope.column.data['province']}}-{{scope.column.data['city']}}-{{scope.column.data['county']}}
+        </p>
+        <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
+      </template>
+       <template v-slot:opreation="scope">
+        <edit-contact :mainData="mainData" :row="scope.data" @onAddSuccess="listData"></edit-contact>
+        <el-popconfirm
+          title="确定删除吗?"
+          @confirm="deleteContacts(scope.data)">
+          <el-button size="small" type="text" slot="reference">删 除</el-button>
+        </el-popconfirm>
+      </template>
+    </tableLayout>
+  </div>
+</template>
+
+<script>
+import editContact from './edit.vue'
+import addContact from './add.vue'
+export default {
+  props:['mainData'],
+  data () {
+    return {
+      list:[],
+      param:{}
+    }
+  },
+  components:{
+    addContact,
+    editContact
+  },
+  methods:{
+    async listData () {
+      const res = await this.$api.requested({
+        "id": "20221009155803",
+        "content": {
+        "sys_enterpriseid":this.mainData.sys_enterpriseid,
+          "where":{
+            "condition":"",
+            "workaddress":1
+          }
+        }
+      })
+      this.list = res.data
+    },
+    async deleteContacts (row) {
+      const res = await this.$api.requested({
+        "id": "20221009155903",
+        "version":1,
+        "content": {
+          "contactsid":row.contactsid
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.listData()
+      })
+    }
+  },
+  mounted () {
+    this.listData()
+  },
+  watch:{
+    mainData (val) {
+      this.param = val
+    }
+  },
+  created () {
+    // 获取角色表结构
+    this.tablecols = this.tool.tabelCol(this.$route.name)['addressAndContact'].tablecols
+  }
+}
+
+</script>
+<style>
+</style>

+ 1 - 10
src/router/HManagement.js

@@ -29,16 +29,7 @@ const HManagement = [
       },
     ]
   },
-  //  {
-  //   path: '/archives_ad_analysis',
-  //   name: 'archives_adlist',
-  //   meta: {
-  //     title: '数据分析',
-  //     ast_nav: true
-  //   },
-  //   components: () => import(/* webpackChunkName: "about" */ '@/HManagement/archives_ad/dataAnalysis/index.vue')
-  // },
-   {
+  {
     path: '/archives_adclass',
     name: 'archives_adclass',
     meta: {

+ 21 - 1
src/router/SDrpManagement.js

@@ -216,11 +216,31 @@ const SDrpManagement = [
     path: '/performanceGoals',
     name:'performanceGoals',
     meta: {
-      title: '工具借用',
+      title: '业绩目标',
       ast_nav: true,
       keeproute: true,
     },
     component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/performanceGoals/index')
   },
+  {
+    path: '/performanceGoals_saler',
+    name:'performanceGoals_saler',
+    meta: {
+      title: '业绩目标',
+      ast_nav: true,
+      keeproute: true,
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/performanceGoals_saler/index')
+  },
+  {
+    path: '/rebateset',
+    name:'rebateset',
+    meta: {
+      title: '居间费结算',
+      ast_nav: true,
+      keeproute: true,
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/rebatesettlement/index')
+  },
 ]
 export default SDrpManagement

+ 9 - 0
src/router/SManagement.js

@@ -129,6 +129,15 @@ const SManagement = [{
   },
   component: () => import(/* webpackChunkName: "about" */ '@/SManagement/user/user-info/UserInfo')
 },
+{
+  path: '/setenterpriseInfo',
+  name: 'setenterpriseInfo',
+  meta: {
+    title: '企业信息',
+    ast_nav: false
+  },
+  component: () => import(/* webpackChunkName: "about" */ '@/SManagement/setenterpriseInfo/index')
+},
 {
   path: '/team_managent',
   name: 'teamManagent',