Browse Source

Merge branch 'LAO_MO' into online

Xiao_Mo 4 years ago
parent
commit
8ebe0b60b1

+ 62 - 46
src/api/businessManager.js

@@ -3,73 +3,89 @@ import request from '@/utils/request'
 import qs from 'qs'
 let api = '/api-web'
 // 分页查询商品(教材、辅件)列表
-export function goodsQuery(data) {
-    return request({
-        url: api + '/goods/queryPage',
-        method: 'get',
-        params: data
-    })
+export function goodsQuery (data) {
+  return request({
+    url: api + '/goods/queryPage',
+    method: 'get',
+    params: data
+  })
 }
 
 // 根据商品(教材、辅件)编号查询商品(教材、辅件)
-export function goodsSingleQuery(data) {
-    return request({
-        url: api + `/goods/get/${data}`,
-        method: 'get'
-    })
+export function goodsSingleQuery (data) {
+  return request({
+    url: api + `/goods/get/${data}`,
+    method: 'get'
+  })
 }
 
 // 新增商品(教材、辅件)
-export function goodsAdd(data) {
-    return request({
-        url: api + '/goods/add',
-        method: 'post',
-        data: qs.stringify(data)
-    })
+export function goodsAdd (data) {
+  return request({
+    url: api + '/goods/add',
+    method: 'post',
+    data: qs.stringify(data)
+  })
 }
 
 // 修改商品(教材、辅件)
-export function goodsUpdate(data) {
-    return request({
-        url: api + '/goods/update',
-        method: 'post',
-        data: qs.stringify(data)
-    })
+export function goodsUpdate (data) {
+  return request({
+    url: api + '/goods/update',
+    method: 'post',
+    data: qs.stringify(data)
+  })
 }
 
 // 删除商品(教材、辅件)
-export function goodsDelete(data) {
-    return request({
-        url: api + `/goods/del/${data}`,
-        method: 'post'
-    })
+export function goodsDelete (data) {
+  return request({
+    url: api + `/goods/del/${data}`,
+    method: 'post'
+  })
 }
 
 // 参数列表
-export function categoryListTree(data) {
-    return request({
-        url: api + '/category/queryPage',
-        method: 'get',
-        params: data
-    })
+export function categoryListTree (data) {
+  return request({
+    url: api + '/category/queryPage',
+    method: 'get',
+    params: data
+  })
 }
 
 // 新增、修改商品类型
-export function categoryUpSet(data) {
-    return request({
-        url: api + '/category/upset',
-        method: 'post',
-        data: data
-    })
+export function categoryUpSet (data) {
+  return request({
+    url: api + '/category/upset',
+    method: 'post',
+    data: data
+  })
 }
 
 // 删除商品分类
-export function categoryUpSetDel(data) {
-    return request({
-        url: api + `/category/del`,
-        method: 'post',
-        data: qs.stringify(data)
-    })
+export function categoryUpSetDel (data) {
+  return request({
+    url: api + `/category/del`,
+    method: 'post',
+    data: qs.stringify(data)
+  })
 }
 
+// 更换列表
+export function getSubjectChangeList (data) {
+  return request({
+    url: api + '/subjectChange/queryPage',
+    method: 'get',
+    params: data
+  })
+}
+// 更新成本差
+export function updateCostMargin (data) {
+  return request({
+    url: api + `/subjectChange/updateCostMargin`,
+    method: 'post',
+    data: qs.stringify(data)
+  })
+}
 

+ 26 - 1
src/utils/searchArray.js

@@ -142,6 +142,29 @@ const paymentChannelStatus = [
   { value: 'BALANCE', label: '余额' },
   { value: 'ADAPAY', label: '汇付' }
 ]
+// 销售类型
+const saleStatus = [
+  { value: 'INSTRUMENT', label: '乐器销售' },
+  { value: 'ACCESSORIES', label: '配件销售' },
+  { value: 'SCHOOL_BUY', label: '学校采购' },
+  { value: 'OTHER', label: '其它' }
+
+]
+
+const classStatus = [
+  { value: '1', label: '一年级' },
+  { value: '2', label: '二年级' },
+  { value: '3', label: '三年级' },
+  { value: '4', label: '四年级' },
+  { value: '5', label: '五年级' },
+  { value: '6', label: '六年级' },
+  { value: '7', label: '初一' },
+  { value: '8', label: '初二' },
+  { value: '9', label: '初三' },
+  { value: '10', label: '高一' },
+  { value: '11', label: '高二' },
+  { value: '12', label: '高三' },
+]
 
 export {
   courseType,
@@ -160,5 +183,7 @@ export {
   courseListType,
   practiceGroupType,
   visitChiose,
-  paymentChannelStatus
+  paymentChannelStatus,
+  saleStatus,
+  classStatus
 }

+ 52 - 0
src/utils/utils.js

@@ -9,3 +9,55 @@ export const formatData = (times, keys, format = 'YYYY-MM-DD') => {
   }
   return data
 }
+
+
+export const getNowDateAndMonday=(time)=> {
+  let timestamp = new Date(time.replace(/-/g, "/")).getTime();
+  let serverDate = new Date(time);
+  if (serverDate.getDay() == 0) {
+    timestamp -= 7 * 24 * 60 * 60 * 1000;
+  }
+  let mondayTime =
+    timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000;
+
+  let mondayData = new Date(mondayTime);
+  //年
+  let mondayY = mondayData.getFullYear();
+  //月
+  let mondayM =
+    mondayData.getMonth() + 1 < 10
+      ? "0" + (mondayData.getMonth() + 1)
+      : mondayData.getMonth() + 1;
+  //日
+  let mondayD =
+    mondayData.getDate() < 10
+      ? "0" + mondayData.getDate()
+      : mondayData.getDate();
+
+  let str = mondayY + "-" + mondayM + "-" + mondayD;
+  return str;
+}
+export const getNowDateAndSunday=(time) =>{
+  let timestamp = new Date(time.replace(/-/g, "/")).getTime();
+  let serverDate = new Date(time);
+
+  let num = 7 - serverDate.getDay();
+  if (num == 7) {
+    num = 0;
+  }
+  let sundayTiem = timestamp + num * 24 * 60 * 60 * 1000;
+  let SundayData = new Date(sundayTiem);
+  //年
+  let tomorrowY = SundayData.getFullYear(); //月
+  let tomorrowM =
+    SundayData.getMonth() + 1 < 10
+      ? "0" + (SundayData.getMonth() + 1)
+      : SundayData.getMonth() + 1;
+  //日
+  let tomorrowD =
+    SundayData.getDate() < 10
+      ? "0" + SundayData.getDate()
+      : SundayData.getDate();
+  let str = tomorrowY + "-" + tomorrowM + "-" + tomorrowD;
+  return str;
+}

+ 5 - 0
src/utils/vueFilter.js

@@ -1,5 +1,6 @@
 import Vue from 'vue'
 import dayjs from 'dayjs'
+import numeral from 'numeral'
 import { feeProject, feeType, saleType } from '../constant'
 
 // 合并数组
@@ -603,3 +604,7 @@ Vue.filter('teamPayStatus', value => {
   }
   return tpl[value]
 })
+// 金额格式化
+Vue.filter('moneyFormat', value => {
+  return numeral(value).format('0,0.00')
+})

+ 149 - 54
src/views/businessManager/orderManager/salesList.vue

@@ -9,16 +9,32 @@
                class="searchForm"
                v-model.trim="searchForm">
         <el-form-item>
-          <el-input v-model.trim="searchForm.search" placeholder="请输入流水号、订单号" type="text"></el-input>
+          <el-input v-model.trim="searchForm.search"
+                    placeholder="请输入流水号、订单号"
+                    type="text"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-select multiple collapse-tags v-model="searchForm.organIdList" clearable filterable placeholder="请选择所属分部">
-            <el-option v-for="(item,index) in organList" :key="index" :label="item.name" :value="item.id"></el-option>
+          <el-select multiple
+                     collapse-tags
+                     v-model="searchForm.organIdList"
+                     clearable
+                     filterable
+                     placeholder="请选择所属分部">
+            <el-option v-for="(item,index) in organList"
+                       :key="index"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select clearable filterable placeholder="请选择所属学校" v-model="searchForm.cooperationOrganId">
-            <el-option v-for="(item,index) in cooperations" :key="index" :label="item.name" :value="item.id"></el-option>
+          <el-select clearable
+                     filterable
+                     placeholder="请选择所属学校"
+                     v-model="searchForm.cooperationOrganId">
+            <el-option v-for="(item,index) in cooperations"
+                       :key="index"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <!-- <el-form-item>
@@ -44,43 +60,88 @@
           </el-date-picker>
         </el-form-item>
         <el-form-item>
-          <el-button @click="search" type="danger">搜索</el-button>
-          <el-button @click="onReSet" type="primary">重置</el-button>
+          <el-button @click="search"
+                     type="danger">搜索</el-button>
+          <el-button @click="onReSet"
+                     type="primary">重置</el-button>
         </el-form-item>
       </el-form>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList' style="width: 100%"
+        <el-table :data='tableList'
+                  style="width: 100%"
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center' width="150" prop="transNo" label="交易流水号"></el-table-column>
-          <el-table-column align='center' prop="orderNo" label="订单号"></el-table-column>
-          <el-table-column align='center' prop="sellTime" label="销售日期">
+          <el-table-column align='center'
+                           width="150"
+                           prop="transNo"
+                           label="交易流水号"></el-table-column>
+          <el-table-column align='center'
+                           prop="orderNo"
+                           label="订单号"></el-table-column>
+          <el-table-column align='center'
+                           prop="sellTime"
+                           label="销售日期">
             <template slot-scope="scope">
               {{scope.row.sellTime | dateForMinFormat}}
             </template>
           </el-table-column>
-          <el-table-column align='center' prop="type" label="销售类型">
+          <el-table-column align='center'
+                           prop="type"
+                           label="销售类型">
             <template slot-scope="scope">{{ scope.row.type | saleType }}</template>
           </el-table-column>
-          <el-table-column align='center' prop="goodsName" label="商品名称"></el-table-column>
-          <el-table-column align='center' prop="num" label="数量"></el-table-column>
-          <el-table-column align='center' width="100" prop="expectAmount" label="应付金额(元)"></el-table-column>
-          <el-table-column align='center' width="100" prop="balanceAmount" label="余额支付(元)"></el-table-column>
-          <el-table-column align='center' width="100" prop="actualAmount" label="现金支付(元)"></el-table-column>
-          <el-table-column align='center' width="100" prop="sellCost" label="销售成本(元)">
+          <el-table-column align='center'
+                           prop="goodsName"
+                           label="商品名称"></el-table-column>
+          <el-table-column align='center'
+                           prop="num"
+                           label="数量"></el-table-column>
+          <el-table-column align='center'
+                           width="100"
+                           prop="expectAmount"
+                           label="应付金额(元)"></el-table-column>
+          <el-table-column align='center'
+                           width="100"
+                           prop="balanceAmount"
+                           label="余额支付(元)"></el-table-column>
+          <el-table-column align='center'
+                           width="100"
+                           prop="actualAmount"
+                           label="现金支付(元)"></el-table-column>
+          <el-table-column align='center'
+                           width="100"
+                           prop="sellCost"
+                           label="销售成本(元)">
             <template slot-scope="scope">{{ scope.row.sellCost * scope.row.num }}</template>
           </el-table-column>
-          <el-table-column align='center' prop="userName" label="学员姓名"></el-table-column>
+          <el-table-column align='center'
+                           prop="userName"
+                           label="学员姓名"></el-table-column>
           <!-- <el-table-column align='center' prop="remark" label="退费说明"></el-table-column> -->
-          <el-table-column align='center' prop="paymentChannel" label="交易方式">
+          <el-table-column align='center'
+                           prop="paymentChannel"
+                           label="交易方式">
             <template slot-scope="scope">{{ scope.row.paymentChannel | paymentChannelStatus }}</template>
           </el-table-column>
-          <el-table-column align='center' prop="merNo" label="收款账户"></el-table-column>
-          <el-table-column align='center' prop="organName" label="所属分部"></el-table-column>
-          <el-table-column align='center' prop="schoolName" label="所属学校"></el-table-column>
-          <el-table-column align='center' fixed="right" label="操作">
+          <el-table-column align='center'
+                           prop="merNo"
+                           label="收款账户"></el-table-column>
+          <el-table-column align='center'
+                           prop="organName"
+                           label="所属分部"></el-table-column>
+          <el-table-column align='center'
+                           prop="schoolName"
+                           label="所属学校"></el-table-column>
+          <el-table-column align='center'
+                           prop="eduTeacher"
+                           label="教务老师"></el-table-column>
+          <el-table-column align='center'
+                           fixed="right"
+                           label="操作">
             <template slot-scope="scope">
-              <el-button @click="onBackMoney(scope.row)"  v-permission="'sellOrder/update'" type="text">修改成本</el-button>
+              <el-button @click="onBackMoney(scope.row)"
+                         v-permission="'sellOrder/update'"
+                         type="text">修改成本</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -90,49 +151,75 @@
                     :page-sizes="pageInfo.page_size"
                     @pagination="getList" />
       </div>
-      <el-dialog title="修改成本" :visible.sync="backStatus" @close="onFormClose('ruleForm')" width="500px">
-        <el-form :model="form" :rules="rules" ref="ruleForm">
-          <el-form-item label="交易流水号" :label-width="formLabelWidth">
+      <el-dialog title="修改成本"
+                 :visible.sync="backStatus"
+                 @close="onFormClose('ruleForm')"
+                 width="500px">
+        <el-form :model="form"
+                 :rules="rules"
+                 ref="ruleForm">
+          <el-form-item label="交易流水号"
+                        :label-width="formLabelWidth">
             {{ detail.transNo }}
           </el-form-item>
-          <el-form-item label="订单号" :label-width="formLabelWidth">
+          <el-form-item label="订单号"
+                        :label-width="formLabelWidth">
             {{ detail.orderNo }}
           </el-form-item>
-          <el-form-item label="销售日期" :label-width="formLabelWidth">
+          <el-form-item label="销售日期"
+                        :label-width="formLabelWidth">
             {{ detail.sellTime | dateForMinFormat }}
           </el-form-item>
-          <el-form-item label="学员姓名" :label-width="formLabelWidth">
+          <el-form-item label="学员姓名"
+                        :label-width="formLabelWidth">
             {{ detail.userName }}
           </el-form-item>
-          <el-form-item label="所属分部" :label-width="formLabelWidth">
+          <el-form-item label="所属分部"
+                        :label-width="formLabelWidth">
             {{ detail.organName }}
           </el-form-item>
-          <el-form-item label="所属学校" :label-width="formLabelWidth">
+          <el-form-item label="所属学校"
+                        :label-width="formLabelWidth">
             {{ detail.schoolName }}
           </el-form-item>
-          <el-form-item label="商品名称" :label-width="formLabelWidth">
+          <el-form-item label="商品名称"
+                        :label-width="formLabelWidth">
             {{ detail.goodsName }}
           </el-form-item>
           <!-- <el-form-item label="商品型号" :label-width="formLabelWidth">
             {{ form.name }}
           </el-form-item> -->
-          <el-form-item label="应付金额(元)" :label-width="formLabelWidth">
+          <el-form-item label="应付金额(元)"
+                        :label-width="formLabelWidth">
             {{ detail.expectAmount }}
           </el-form-item>
-          <el-form-item label="单件成本(元)" prop="amount" :label-width="formLabelWidth">
-             <!-- <el-input autocomplete="off"></el-input> -->
-             <el-autocomplete
-              v-model="form.sellCost"
-              class="inline-input"
-              :fetch-suggestions="querySearch"
-              placeholder="请输入成本"
-            ></el-autocomplete>
+          <el-form-item label="单件成本(元)"
+                        prop="amount"
+                        :label-width="formLabelWidth">
+            <!-- <el-input autocomplete="off"></el-input> -->
+            <el-autocomplete v-model="form.sellCost"
+                             class="inline-input"
+                             :fetch-suggestions="querySearch"
+                             placeholder="请输入成本"></el-autocomplete>
+          </el-form-item>
+          <el-form-item label="教务老师"
+                        :label-width="formLabelWidth">
+            <el-select v-model.trim="form.eduTeacherId"
+                       filterable
+                       clearable
+                       placeholder="请选择教务老师">
+              <el-option v-for="(item,index) in educationList"
+                         :key="index"
+                         :value="item.userId"
+                         :label="item.userName"></el-option>
+            </el-select>
           </el-form-item>
         </el-form>
         <span slot="footer"
               class="dialog-footer">
           <el-button @click="backStatus = false">取消</el-button>
-          <el-button type="primary" @click="onTeachingSubmit('ruleForm', 'DONE')">确认</el-button>
+          <el-button type="primary"
+                     @click="onTeachingSubmit('ruleForm', 'DONE')">确认</el-button>
         </span>
       </el-dialog>
     </div>
@@ -141,7 +228,7 @@
 <script>
 import pagination from '@/components/Pagination/index'
 import { getSellOrder, updateSellOrder } from '@/api/orderManager'
-import { getEmployeeOrgan, getCooperation } from '@/api/buildTeam'
+import { getEmployeeOrgan, getCooperation, findEducationUsers } from '@/api/buildTeam'
 import { paymentChannelStatus } from '@/utils/searchArray'
 import dayjs from 'dayjs'
 export default {
@@ -161,6 +248,7 @@ export default {
       },
       tableList: [],
       organList: [],
+      educationList: [],
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -173,6 +261,7 @@ export default {
       form: {
         id: null,
         sellCost: null,
+        eduTeacherId: null
       },
       rules: {
         sellCost: [{ required: true, message: '请输入金额', trigger: 'input' }],
@@ -187,12 +276,17 @@ export default {
         this.organList = res.data;
       }
     })
-    getCooperation({ 'rows': 1000, })
-    .then(res => {
+    findEducationUsers().then(res => {
       if (res.code == 200) {
-        this.cooperations = res.data.rows;
+        this.educationList = res.data;
       }
-    })
+    });
+    getCooperation({ 'rows': 1000, })
+      .then(res => {
+        if (res.code == 200) {
+          this.cooperations = res.data.rows;
+        }
+      })
     var now = new Date();
     var startDate = dayjs().format('YYYY-MM-DD');
     var endDate = dayjs().format('YYYY-MM-DD');
@@ -259,17 +353,17 @@ export default {
       }
       this.getList()
     },
-    querySearch(queryString, cb) {
+    querySearch (queryString, cb) {
       let restaurants = []
       try {
         const json = JSON.parse(this.detail.sellCost2)
-        restaurants = [{value: String(json.sellCost || '')}, {value: String(json.SellCost2 || '')}].filter(item => !!item)
-      } catch (error) {}
+        restaurants = [{ value: String(json.sellCost || '') }, { value: String(json.SellCost2 || '') }].filter(item => !!item)
+      } catch (error) { }
       // this.createFilter(queryString)
       // let results = queryString ? restaurants.filter((restaurant) => {
       //   return restaurant && restaurant.value && String(restaurant.value).indexOf(queryString) === 0
       // }) : restaurants;
-        // 调用 callback 返回建议列表的数据
+      // 调用 callback 返回建议列表的数据
       cb(restaurants);
     },
     onFormClose (formName) { // 关闭弹窗重置验证
@@ -280,7 +374,8 @@ export default {
       this.detail = row
       this.form = {
         id: row.id,
-        sellCost: String(row.sellCost)
+        sellCost: String(row.sellCost),
+        eduTeacherId: row.eduTeacherId ? row.eduTeacherId : null
       }
       // applyRefundAudit()
     }

+ 143 - 45
src/views/businessManager/resetList/index.vue

@@ -10,11 +10,11 @@
         <el-form-item>
           <el-input v-model.trim="searchForm.search"
                     @keyup.enter.native="search"
-                    placeholder></el-input>
+                    placeholder='流水号 订单号 学生姓名'></el-input>
         </el-form-item>
         <el-form-item prop="organId">
           <el-select class="multiple"
-                     v-model.trim="searchForm.organId"
+                     v-model.trim="searchForm.organIdList"
                      filterable
                      clearable
                      placeholder="请选择分部">
@@ -25,32 +25,31 @@
           </el-select>
         </el-form-item>
         <el-form-item prop="organId">
-          <el-select class="multiple"
-                     v-model.trim="searchForm.organId"
+          <el-select clearable
                      filterable
-                     clearable
-                     placeholder="请选择学校">
-            <el-option v-for="(item,index) in organList"
+                     placeholder="请选择所属学校"
+                     v-model="searchForm.cooperationOrganId">
+            <el-option v-for="(item,index) in cooperations"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="organId">
+        <!-- <el-form-item prop="organId">
           <el-select class="multiple"
                      v-model.trim="searchForm.organId"
                      filterable
                      clearable
                      placeholder="销售类型">
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in saleStatus"
                        :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+                       :label="item.label"
+                       :value="item.value"></el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item>
           <el-date-picker style="width:410px;"
-                          v-model.trim="searchForm.resetDate"
+                          v-model.trim="resetDate"
                           type="daterange"
                           value-format="yyyy-MM-dd"
                           range-separator="至"
@@ -59,6 +58,12 @@
                           :picker-options="{ firstDayOfWeek: 1 }">
           </el-date-picker>
         </el-form-item>
+        <el-form-item>
+          <el-button @click="search"
+                     type="danger">搜索</el-button>
+          <el-button @click="onReSet"
+                     type="primary">重置</el-button>
+        </el-form-item>
       </el-form>
       <div class="tableWrap">
         <el-table style="width: 100%"
@@ -71,63 +76,98 @@
                        label-width="120px"
                        class="demo-table-expand">
                 <el-form-item label="交易流水号">
-                  <span>{{ props.row.name }}</span>
+                  <span>{{ props.row.transNo }}</span>
                 </el-form-item>
                 <el-form-item label="订单号">
-                  <span>{{ props.row.shop }}</span>
+                  <span>{{ props.row.orderNo }}</span>
                 </el-form-item>
                 <el-form-item label="更换金额(元)">
-                  <span>{{ props.row.id }}</span>
+                  <span>{{ props.row.changeMusicalPrice |moneyFormat}}</span>
                 </el-form-item>
                 <el-form-item label="教务老师">
-                  <span>{{ props.row.shopId }}</span>
+                  <span>{{ props.row.eduTeacher }}</span>
                 </el-form-item>
                 <el-form-item label="交易方式">
-                  <span>{{ props.row.category }}</span>
-                </el-form-item>
-                <el-form-item label="收款账户">
-                  <span>{{ props.row.address }}</span>
-                </el-form-item>
-                <el-form-item label="商品描述">
-                  <span>{{ props.row.desc }}</span>
+                  <span>{{ props.row.paymentChannel| paymentChannelStatus}}</span>
                 </el-form-item>
               </el-form>
             </template>
           </el-table-column>
 
           <el-table-column align="center"
-                           prop="studentId"
+                           prop="studentName"
                            label="学员姓名"></el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="原乐器"></el-table-column>
+                           label="原乐器">
+            <template slot-scope="scope">
+              <div v-if="scope.row.originalMusicalGoods">
+                {{scope.row.originalMusicalGoods.name}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="原支付金额(元)"></el-table-column>
+                           label="原教辅"
+                           :formatter="(row)=>{return accessoriesFormatter(row.originalAccessoriesGoods)}">
+          </el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="更换乐器"></el-table-column>
+                           label="原支付金额(元)">
+            <template slot-scope="scope">
+              <div>
+                {{(scope.row.originalMusicalPrice)|moneyFormat}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="更换教辅"></el-table-column>
+                           label="更换乐器">
+            <template slot-scope="scope">
+              <div v-if="scope.row.changeMusicalGoods">
+                {{scope.row.changeMusicalGoods.name}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
-                           prop="studentId"
-                           label="差价(元)"></el-table-column>
+                           label="更换教辅"
+                           :formatter="(row)=>{return accessoriesFormatter(row.changeAccessoriesGoods)}"></el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="成本差(元)"></el-table-column>
+                           label="差价(元)">
+            <template slot-scope="scope">
+              <div>
+                {{((scope.row.changeMusicalPrice+scope.row.changeAccessoriesPrice)-(scope.row.originalMusicalPrice+scope.row.originalAccessoriesPrice))|moneyFormat}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="studentId"
+                           label="成本差(元)">
+            <template slot-scope="scope">
+              <div>
+                {{scope.row.costMargin | moneyFormat}}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center"
+                           prop="organName"
                            label="所属分部"></el-table-column>
           <el-table-column align="center"
-                           prop="studentId"
+                           prop="cooperationOrganName"
                            label="所属学校"></el-table-column>
           <el-table-column align="center"
-                           prop="studentId"
+                           prop="musicGroupName"
                            label="乐团"></el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="销售日期"></el-table-column>
+                           label="销售日期">
+            <template slot-scope="scope">
+              <div>
+                {{scope.row.sellTime | dayjsFormat}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="studentId"
                            label="操作">
@@ -146,7 +186,10 @@
                     @pagination="getList" />
       </div>
     </div>
-    <resetSound :show="show" />
+    <resetSound :show="show"
+                @closeReset='closeReset'
+                @getList='getList'
+                :item='activeRow' />
   </div>
 </template>
 
@@ -155,20 +198,35 @@ import axios from "axios";
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
 import load from "@/utils/loading";
-import { getTeacher, getEmployeeOrgan } from "@/api/buildTeam";
+import { getTeacher, getEmployeeOrgan, getCooperation } from "@/api/buildTeam";
+import { getSubjectChangeList } from "@/api/businessManager"
 import resetSound from './resetSound'
+import { saleStatus } from '@/utils/searchArray'
+import cleanDeep from 'clean-deep'
+import {getNowDateAndMonday,getNowDateAndSunday} from '@/utils/utils'
+let nowTime = new Date();
+nowTime =
+  nowTime.getFullYear() +
+  "-" +
+  (nowTime.getMonth() + 1) +
+  "-" +
+  nowTime.getDate();
 export default {
   components: { pagination, resetSound },
   data () {
     return {
       searchForm: {
         search: null,
-        resetDate: null
+       
       },
+       resetDate: [],
       show: false,
       teacherList: [],
-      tableList: [{}],
+      tableList: [],
       organList: [],
+      cooperations: [],
+      saleStatus,
+      activeRow: null,
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -182,11 +240,15 @@ export default {
   created () { },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {
-    getTeacher().then(res => {
-      if (res.code == 200) {
-        this.teacherList = res.data;
-      }
-    });
+    this.resetDate = [];
+    this.resetDate.push(getNowDateAndMonday(nowTime));
+    this.resetDate.push(getNowDateAndSunday(nowTime));
+    getCooperation({ 'rows': 1000, })
+      .then(res => {
+        if (res.code == 200) {
+          this.cooperations = res.data.rows;
+        }
+      })
     getEmployeeOrgan().then(res => {
       if (res.code == 200) {
         this.organList = res.data;
@@ -203,10 +265,46 @@ export default {
   },
   methods: {
     init () {
+      this.getList()
+    },
+    getList () {
+      let params = this.searchForm
+      params.rows = this.rules.limit
+      params.page = this.rules.page
+      if(this.searchForm.resetDate&&this.searchForm.resetDate.length >1){
+             params.startTime = this.searchForm.resetDate[0]
+      params.endTime = this.searchForm.resetDate[1]
+      }
+ 
+     
+      getSubjectChangeList(cleanDeep(params)).then(res => {
+        if (res.code === 200) {
+          this.rules.total = res.data.total;
+          this.tableList = res.data.rows
+        }
+      })
     },
-    getList () { },
     reset (row) {
+      console.log(row)
+      this.activeRow = row 
       this.show = true
+    },
+    closeReset () {
+      this.show = false
+    },
+    search () {
+      this.rules.page = 1;
+      this.getList()
+    },
+    onReSet () {
+      this.searchForm.resetFields()
+      this.search()
+    },
+    accessoriesFormatter (accessories) {
+      let arr = accessories.map(res => {
+        return res.name
+      })
+      return arr.join(',')
     }
   }
 };

+ 114 - 44
src/views/businessManager/resetList/resetSound.vue

@@ -1,49 +1,58 @@
 <template>
   <div>
-    <el-dialog title="修改"
-               width="700px"
-               inline
-               :visible.sync="soundVisible">
-      <el-form :model="soundForm"
-               ref="soundForm">
+    <el-dialog title="修改" width="500px" :visible.sync="soundVisible">
+      <el-form
+        :model="soundForm"
+        label-position="right"
+        label-width="120px"
+        :inline="true"
+        ref="soundForm"
+      >
         <el-form-item label="原乐器">
-          <el-input></el-input>
+          <el-input
+            style="width: 330px"
+            disabled
+            v-model="soundForm.originalMusicalGoods"
+          ></el-input>
         </el-form-item>
         <el-form-item label="原教辅">
-          <el-input></el-input>
-        </el-form-item>
-        <el-form-item label="缴费开始日期">
-          <el-date-picker v-model="value1"
-                          type="date"
-                          placeholder="选择日期">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="缴费结束日期">
-          <el-date-picker v-model="value1"
-                          type="date"
-                          placeholder="选择日期">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="更改声部">
-          <el-input></el-input>
+          <el-input
+            style="width: 330px"
+            disabled
+            v-model="soundForm.originalAccessories"
+          ></el-input>
         </el-form-item>
         <el-form-item label="更换乐器">
-          <el-input></el-input>
+          <el-input
+            style="width: 330px"
+            disabled
+            v-model="soundForm.changeMusicalGoods"
+          ></el-input>
         </el-form-item>
         <el-form-item label="更换教辅">
-          <el-input></el-input>
+          <el-input
+            style="width: 330px"
+            disabled
+            v-model="soundForm.changeAccessories"
+          ></el-input>
         </el-form-item>
         <el-form-item label="支付差价">
-          <el-input></el-input>
+          <el-input
+            style="width: 330px"
+            disabled
+            v-model="soundForm.money"
+          ></el-input>
         </el-form-item>
         <el-form-item label="成本差(元)">
-          <el-input></el-input>
+          <el-input
+            style="width: 330px"
+            v-model="soundForm.costMargin"
+          ></el-input>
         </el-form-item>
       </el-form>
-      <div slot="footer"
-           class="dialog-footer">
+      <div slot="footer" class="dialog-footer">
         <el-button @click="soundVisible = false">取 消</el-button>
-        <el-button type="primary">确 定</el-button>
+        <el-button type="primary" @click="resetCostMargin">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -51,26 +60,87 @@
 <style lang="scss">
 </style>
 <script>
+import numeral from "numeral";
+import { updateCostMargin } from "@/api/businessManager";
 export default {
-  props: ['show', 'item'],
-  data () {
+  props: ["show", "item"],
+  data() {
     return {
-      soundForm: {},
+      soundForm: {
+        originalMusicalGoods: null,
+        originalAccessories: null,
+        changeMusicalGoods: null,
+        changeAccessories: null,
+        money: null,
+        costMargin: null,
+        id: null,
+      },
       soundVisible: false,
-      value1: null
-    }
+    };
+  },
+  mounted() {},
+  methods: {
+    accessoriesFormatter(accessories) {
+      let arr = accessories.map((res) => {
+        return res.name;
+      });
+      return arr.join(",");
+    },
+    resetCostMargin() {
+      updateCostMargin({id:this.soundForm.id,costMargin:this.soundForm.costMargin}).then(res=>{
+        if(res.code == 200){
+          this.$message.success('修改成功')
+          this.$emit('getList')
+        }
+      })
+    },
   },
-  mounted () { },
-  methods: {},
   watch: {
-    show (val) {
-      this.soundVisible = val
+    show(val) {
+      this.soundVisible = val;
     },
-    soundVisible (val) {
+    soundVisible(val) {
       if (!val) {
-        // this.
+        this.$emit("closeReset");
       }
-    }
-  }
-}
+    },
+    item: {
+      immediate: true,
+      deep: true,
+      handler(row, oldValue) {
+        if (row) {
+          this.soundForm = {
+            originalMusicalGoods: row.originalMusicalGoods
+              ? row.originalMusicalGoods.name
+              : null,
+            originalAccessories:
+              this.accessoriesFormatter(row.originalAccessoriesGoods) || null,
+            changeMusicalGoods: row.changeMusicalGoods
+              ? row.changeMusicalGoods.name
+              : null,
+            changeAccessories:
+              this.accessoriesFormatter(row.changeAccessoriesGoods) || null,
+            money: numeral(
+              row.changeMusicalPrice +
+                row.changeAccessoriesPrice -
+                (row.originalMusicalPrice + row.originalAccessoriesPrice)
+            ).format("0,0.00"),
+            costMargin: numeral(row.costMargin).format("0,0.00"),
+            id: row.id,
+          };
+        } else {
+          this.soundForm = {
+            originalMusicalGoods: null,
+            originalAccessories: null,
+            changeMusicalGoods: null,
+            changeAccessories: null,
+            money: null,
+            costMargin: null,
+            id: null,
+          };
+        }
+      },
+    },
+  },
+};
 </script>

File diff suppressed because it is too large
+ 522 - 323
src/views/teamBuild/components/teamBaseInfo.vue


+ 1 - 1
src/views/teamDetail/teamInfo.vue

@@ -29,7 +29,7 @@
   </div>
 </template>
 <script>
-import baseInfo from '@/views/teamDetail/components/baseInfo'
+import baseInfo from '@/views/teamBuild/components/teamBaseInfo'
 import soundeDetail from '@/views/resetTeaming/components/resetSound'
 export default {
   data () {

Some files were not shown because too many files changed in this diff