Przeglądaj źródła

Merge branch 'dev' into x_d_5.1

谢杰标 2 lat temu
rodzic
commit
9a2a6dce67
27 zmienionych plików z 4471 dodań i 362 usunięć
  1. 5 0
      src/api/api.js
  2. 34 0
      src/components/searchBoxNew.vue
  3. 27 2
      src/components/tableList.vue
  4. 126 0
      src/newApi/institution.js
  5. 143 0
      src/newApi/settle.js
  6. 16 0
      src/store/getters.js
  7. 14 0
      src/store/modules/dict.js
  8. 1 1
      src/utils/uploadFile.js
  9. 374 0
      src/views/financed/accountsPayable/supplierSettlement/index.vue
  10. 1 1
      src/views/financed/components/dislogOrderDetails.vue
  11. 2 1
      src/views/financed/components/refund/dislogSet.vue
  12. 102 0
      src/views/financed/components/trainee/auditProgress.vue
  13. 261 0
      src/views/financed/components/trainee/dislogSetTrainee.vue
  14. 934 0
      src/views/financed/orderManageList/independent/index.vue
  15. 1 1
      src/views/financed/orderManageList/index.vue
  16. 1012 0
      src/views/financed/orderManageList/operate/index.vue
  17. 147 0
      src/views/financed/subscription/dislog.vue
  18. 310 0
      src/views/financed/subscription/index.vue
  19. 161 0
      src/views/systemManagement/collectionAccount/dislog.vue
  20. 199 0
      src/views/systemManagement/collectionAccount/index.vue
  21. 110 0
      src/views/systemManagement/costCategory/dislog.vue
  22. 157 0
      src/views/systemManagement/costCategory/index.vue
  23. 113 0
      src/views/systemManagement/costClassification/dislog.vue
  24. 159 0
      src/views/systemManagement/costClassification/index.vue
  25. 37 196
      src/views/systemManagement/functional/dislog.vue
  26. 22 157
      src/views/systemManagement/functional/index.vue
  27. 3 3
      src/views/systemManagement/mechanism/index.vue

+ 5 - 0
src/api/api.js

@@ -84,6 +84,7 @@ import poster from '../fxApi/poster'//海报列表
 import temp from '../fxApi/temp'//分销活动列表
 import orderManageList from '../fxApi/orderManageList'//订单管理
 
+
 //积分管理
 import integral from "../fxApi/integral"//商户列表
 import vipUser from "../fxApi/vipUser"//会员列表
@@ -92,9 +93,13 @@ import merchant from "../fxApi/merchant"//合作商户
 import goodsClassification from '../fxApi/goodsClassification'//商户分类
 import goodsPoints from '../fxApi/goodsPoints'//积分商品
 
+import institution from '../newApi/institution'//职能机构
+import settle from '../newApi/settle'//供应商结算
 
 // 导入对应模块------------------------
 export default {
+    ...institution,
+    ...settle,
     ...goodsPoints,
     ...goodsClassification,
     ...merchant,

+ 34 - 0
src/components/searchBoxNew.vue

@@ -203,6 +203,38 @@
               :value="items.tenantId"
             ></el-option>
           </el-select>
+          <!-- 职能机构列表 -->
+          <el-select
+            v-else-if="item.scope === 'topinstitutionList'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="(items, indexs) in topinstitutionList"
+              :key="indexs"
+              :label="items.instName"
+              :value="items.instId"
+            ></el-option>
+          </el-select>
+          <!-- 成本分类列表 -->
+          <el-select
+            v-else-if="item.scope === 'topinstcategoryList'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="(items, indexs) in topinstcategoryList"
+              :key="indexs"
+              :label="items.categoryName"
+              :value="items.costCatId"
+            ></el-option>
+          </el-select>
           <!-- 院校 -->
           <el-select
             v-else-if="item.scope === 'schoolList'"
@@ -799,6 +831,8 @@ export default {
       "roleList",
       "merList",
       "storeList",
+      "topinstitutionList",
+      "topinstcategoryList",
     ]),
     /**
      * @remarks 过滤选择器列表

+ 27 - 2
src/components/tableList.vue

@@ -3,8 +3,14 @@
     <div class="headerNavTool" v-if="navText.headShow !== false">
       <div class="leftIndexText">
         {{ navText.title }} <strong>{{ navText.index }}</strong> {{ navText.ch
-        }}<span style="color: red; font-weight: bold;font-size:16px;margin-left:10px;"
-          ><i class="el-icon-warning-outline" style="font-weight: bold;"></i>
+        }}<span
+          style="
+            color: red;
+            font-weight: bold;
+            font-size: 16px;
+            margin-left: 10px;
+          "
+          ><i class="el-icon-warning-outline" style="font-weight: bold"></i>
           鼠标点击数据表数据,再按键盘左右键可以左右滑动数据表数据。</span
         >
       </div>
@@ -79,6 +85,8 @@
       </div>
     </div>
     <el-table
+      :max-height="tableHeight(clientHeight)"
+      id="allTableList"
       :data="tableData"
       :span-method="objectSpanMethod"
       stripe
@@ -1218,6 +1226,7 @@ export default {
       treeDatas: [],
       treeDatas1: [],
       treeDatas2: [],
+      clientHeight: 0,
     };
   },
   computed: {
@@ -1260,6 +1269,12 @@ export default {
         }
       };
     },
+    tableHeight: function () {
+      return function (h) {
+        var b = document.getElementById("allTableList")?.offsetTop || 0;
+        return h - b - 85;
+      };
+    },
   },
   created() {
     if (this.studentTable) {
@@ -1271,6 +1286,16 @@ export default {
     this.inittableSet = JSON.stringify(this.tableSet);
     this.initTR();
   },
+  mounted() {
+    this.clientHeight = document.documentElement.clientHeight;
+    window.addEventListener(
+      "resize",
+      () => {
+        this.clientHeight = document.documentElement.clientHeight;
+      },
+      true
+    );
+  },
   methods: {
     selectFuncTrue() {
       return true;

+ 126 - 0
src/newApi/institution.js

@@ -0,0 +1,126 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //新增职能机构
+    addtopinstitution(data) {
+        return request({
+            url: '/top/institution',
+            method: 'post',
+            data
+        })
+    },
+    //修改职能机构
+    edittopinstitution(data) {
+        return request({
+            url: '/top/institution/edit',
+            method: 'post',
+            data
+        })
+    },
+    //职能机构批量删除
+    edittopinstitutiondeleteBatch(data) {
+        return request({
+            url: '/top/institution/deleteBatch',
+            method: 'post',
+            data
+        })
+    },
+    //查询职能机构列表
+    topinstitutionList(data) {
+        return request({
+            url: '/top/institution/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取职能机构详细信息
+    topinstitution(data) {
+        return request({
+            url: `/top/institution/` + data,
+            method: 'get',
+        })
+    },
+    // ------
+    // ----------------------------------------------------
+    // ------
+    //新增供应商成本分类
+    addtopinstcategory(data) {
+        return request({
+            url: '/top/inst/category',
+            method: 'post',
+            data
+        })
+    },
+    //修改供应商成本分类
+    edittopinstcategory(data) {
+        return request({
+            url: '/top/inst/category/edit',
+            method: 'post',
+            data
+        })
+    },
+    //供应商成本分类批量删除
+    edittopinstcategorydeleteBatch(data) {
+        return request({
+            url: '/top/inst/category/deleteBatch',
+            method: 'post',
+            data
+        })
+    },
+    //查询供应商成本分类列表
+    topinstcategoryList(data) {
+        return request({
+            url: '/top/inst/category/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取供应商成本分类详细信息
+    topinstcategory(data) {
+        return request({
+            url: `/top/inst/category/` + data,
+            method: 'get',
+        })
+    },
+    // ------
+    // ----------------------------------------------------
+    // ------
+    //新增机构成本类别
+    addtopcategory(data) {
+        return request({
+            url: '/top/category',
+            method: 'post',
+            data
+        })
+    },
+    //修改机构成本类别
+    edittopcategory(data) {
+        return request({
+            url: '/top/category/edit',
+            method: 'post',
+            data
+        })
+    },
+    //机构成本类别批量删除
+    edittopcategorydeleteBatch(data) {
+        return request({
+            url: '/top/category/deleteBatch',
+            method: 'post',
+            data
+        })
+    },
+    //查询机构成本类别列表
+    topcategoryList(data) {
+        return request({
+            url: '/top/category/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取机构成本类别详细信息
+    topcategory(data) {
+        return request({
+            url: `/top/category/` + data,
+            method: 'get',
+        })
+    },
+}

+ 143 - 0
src/newApi/settle.js

@@ -0,0 +1,143 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //结算单批量删除
+    settlebatchdelete(data) {
+        return request({
+            url: '/settle/batch/delete',
+            method: 'post',
+            data
+        })
+    },
+    //结算单批量提交审核
+    settlebatchsubmitcheck(data) {
+        return request({
+            url: '/settle/batch/submit/check',
+            method: 'post',
+            data
+        })
+    },
+    //结算单审核
+    settlecheck(data) {
+        return request({
+            url: '/settle/check',
+            method: 'post',
+            data
+        })
+    },
+    //结算订单列表
+    settlelist(data) {
+        return request({
+            url: '/settle/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //结算金额计算
+    settlemoney(data) {
+        return request({
+            url: '/settle/money',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取数量结算单详情信息
+    settlenumdetaildata(data) {
+        return request({
+            url: `/settle/num/detail/` + data,
+            method: 'get',
+        })
+    },
+    //按数量保存结算订单
+    settlenumsave(data) {
+        return request({
+            url: '/settle/num/save',
+            method: 'post',
+            data
+        })
+    },
+    //数量结算单修改
+    settlenumupdate(data) {
+        return request({
+            url: '/settle/num/update',
+            method: 'post',
+            data
+        })
+    },
+    //订单批量导入
+    settleorderimport(data) {
+        return request({
+            url: '/settle/order/import',
+            method: 'post',
+            data
+        })
+    },
+    //获取订单详细信息
+    settleorderinfo(data) {
+        return request({
+            url: '/settle/order/info',
+            method: 'get',
+            params: data
+        })
+    },
+    //结算单支付
+    settlepay(data) {
+        return request({
+            url: '/settle/pay',
+            method: 'post',
+            data
+        })
+    },
+    //结算单支付信息
+    settlepayinfodata(data) {
+        return request({
+            url: '/settle/pay/info/'+data,
+            method: 'get',
+        })
+    },
+    //结算单据打印明细信息
+    settlereceiptsdetaildata(data) {
+        return request({
+            url: '/settle/receipts/detail/'+data,
+            method: 'get',
+        })
+    },
+    //结算单据打印信息
+    settlereceiptsdata(data) {
+        return request({
+            url: '/settle/receipts/'+data,
+            method: 'get',
+        })
+    },
+    //获取时间结算单详情信息
+    settletimedetaildata(data) {
+        return request({
+            url: '/settle/time/detail/'+data,
+            method: 'get',
+            params: data
+        })
+    },
+    //按时间保存结算订单
+    settletimesave(data) {
+        return request({
+            url: '/settle/time/save',
+            method: 'post',
+            data
+        })
+    },
+    //时间结算单修改
+    settletimeupdate(data) {
+        return request({
+            url: '/settle/time/update',
+            method: 'post',
+            data
+        })
+    },
+    //结算单总金额
+    settletotalmoney(data) {
+        return request({
+            url: '/settle/total/money',
+            method: 'post',
+            data
+        })
+    },
+}

+ 16 - 0
src/store/getters.js

@@ -69,6 +69,22 @@ const getters = {
     }
     return state.dict.systemtenantlist
   },
+  topinstitutionList(state) {
+    if (!state.dict.topinstitutionList) {
+      api.topinstitutionList({ status: 1 }).then(res => {
+        state.dict.topinstitutionList = res.rows
+      })
+    }
+    return state.dict.topinstitutionList
+  },
+  topinstcategoryList(state) {
+    if (!state.dict.topinstcategoryList) {
+      api.topinstcategoryList({ status: 1 }).then(res => {
+        state.dict.topinstcategoryList = res.rows
+      })
+    }
+    return state.dict.topinstcategoryList
+  },
   educationType(state) {
     if (!state.dict.educationType) {
       api.inquireCourseEducationType({ status: 1 }).then(res => {

+ 14 - 0
src/store/modules/dict.js

@@ -32,6 +32,8 @@ const state = {
   beforeLists: null,//前培安排
   indexnum: null,//模拟
   systemtenantlist: null,//机构列表
+  topinstitutionList: null,//职能机构
+  topinstcategoryList: null,//成本分类
   merList: null,//店铺管理列表
   storeList: null,//商户管理列表
   categorytreeList: null,//商户分类列表
@@ -49,6 +51,18 @@ const mutations = {
       state.systemtenantlist = res.rows
     })
   },
+  //职能机构
+  INSTITUTION(state) {
+    api.topinstitutionList({ status: 1 }).then(res => {
+      state.topinstitutionList = res.rows
+    })
+  },
+  //成本分类
+  COSTCAT(state) {
+    api.topinstcategoryList({ status: 1 }).then(res => {
+      state.topinstcategoryList = res.rows
+    })
+  },
   //商户管理列表
   STORELIST(state) {
     api.mallstorelist({ status: 1 }).then(res => {

+ 1 - 1
src/utils/uploadFile.js

@@ -17,7 +17,7 @@ export default {
                 formData.append('OSSAccessKeyId', ossToken.accessid); //accessKeyId
                 formData.append('policy', ossToken.policy); //policy
                 formData.append('Signature', ossToken.signature); //签名
-                formData.append('callback', ossToken.callback); //回调
+                // formData.append('callback', ossToken.callback); //回调
                 formData.append('success_action_status', 200); //成功后返回的操作码
                 //如果是base64文件,那么直接把base64字符串转成blob对象进行上传就可以了
                 formData.append("file", file);

+ 374 - 0
src/views/financed/accountsPayable/supplierSettlement/index.vue

@@ -0,0 +1,374 @@
+<template>
+  <div id="supplierSettlement">
+    <search-box-new
+      class="search_box_page"
+      ref="searchBox"
+      :redIcon="false"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <picture-list
+      ref="pictureList"
+      :info="statisticsData"
+      :list="showTabList"
+    ></picture-list>
+    <table-list
+      rowKey="orderId"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-button size="small">导出excel</el-button>
+      </template>
+      <template slot="orderPrice" slot-scope="props">
+        <div v-if="props.scope.row['settleMoney']">
+          ¥{{ $methodsTools.decimalPoint(props.scope.row["settleMoney"]) }}
+        </div>
+      </template>
+      <template slot="bank" slot-scope="props">
+        <div>开户名:{{ props.scope.row.bankName }}</div>
+        <div>开户银行:{{ props.scope.row.bank }}</div>
+        <div>收款账号:{{ props.scope.row.bankAccount }}</div>
+      </template>
+      <template slot="status" slot-scope="props">
+        {{ getCheckStatus(props.scope.row.checkStatus) }}
+        <span style="color: red" v-if="props.scope.row.checkRole"
+          >({{ props.scope.row.checkRole }})</span
+        >
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text">详情</el-button>
+        <el-button
+          type="text"
+          :disabled="
+            props.scope.row.checkStatus == 7 || $store.state.user == 'admin'
+          "
+          >{{ props.scope.row.checkStatus == 4 ? "支付" : "审核" }}</el-button
+        >
+        <el-button
+          type="text"
+          :disabled="
+            (props.scope.row.checkStatus == 1 ||
+              props.scope.row.checkStatus == 3) &&
+            ($store.state.user.userId == props.scope.row.createUserId ||
+              $store.state.user == 'admin')
+          "
+          >修改</el-button
+        >
+        <el-button
+          type="text"
+          class="warning_text_btn"
+          :disabled="
+            (props.scope.row.checkStatus == 1 ||
+              props.scope.row.checkStatus == 3) &&
+            ($store.state.user.userId == props.scope.row.createUserId ||
+              $store.state.user == 'admin')
+          "
+          >删除</el-button
+        >
+        <el-button
+          type="text"
+          class="warning_text_btn"
+          :disabled="props.scope.row.checkStatus !== 7"
+          >单据打印</el-button
+        >
+        <el-button
+          type="text"
+          class="warning_text_btn"
+          :disabled="props.scope.row.checkStatus !== 7"
+          >明细打印</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+  </div>
+</template>
+
+<script>
+import pictureList from "@/components/Comon/pictureList.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "SupplierSettlement",
+  components: {
+    pictureList,
+    searchBoxNew,
+    tableList,
+    pagination,
+  },
+  data() {
+    return {
+      statisticsData: {},
+      showTabList: [
+        {
+          label: "结算金额",
+          prop: "settlementAmount",
+          img: "未收款",
+        },
+      ],
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "供应商结算",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: true,
+        openCheckMore: true,
+        changeWidth: "310px",
+        custom: false,
+        backFatherBtn: {
+          status: false,
+          title: "配置下单填选模板",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "settleType",
+          placeholder: "结算方式",
+          scope: "select",
+          options: [
+            { label: "数量结算", value: 1 },
+            { label: "时间结算", value: 2 },
+          ],
+        },
+        {
+          prop: "costCatId",
+          placeholder: "成本分类",
+          scope: "topinstcategoryList",
+        },
+        {
+          prop: "educationTypeId",
+          placeholder: "教育类型",
+          scope: "educationType",
+          schemeName: true,
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "checkStatus",
+          placeholder: "审核状态",
+          scope: "select",
+          options: [
+            { label: "待提交", value: 1 },
+            { label: "待审核", value: 7 },
+            { label: "审核中", value: 2 },
+            { label: "未通过", value: 3 },
+            { label: "待支付", value: 4 },
+            { label: "支付失败", value: 5 },
+            { label: "已结算", value: 6 },
+          ],
+        },
+        {
+          placeholder: "时间",
+          prop1: "startTime",
+          prop2: "endTime",
+          placeholder1: "开始日期",
+          placeholder2: "结束日期",
+          scope: "moreDataPicker",
+          Diszing: true,
+        },
+        {
+          prop: "title",
+          placeholder: "输入标题",
+        },
+      ],
+      formData: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      // 表单
+      tableSet: [
+        {
+          label: "添加时间",
+          prop: "createTime",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "标题",
+          prop: "title",
+          hidden: true,
+        },
+        {
+          label: "备注",
+          prop: "remark",
+          hidden: true,
+        },
+        {
+          label: "结算方式",
+          prop: "settleType",
+          hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "数量结算",
+              value: 1,
+            },
+            {
+              label: "时间结算",
+              value: 2,
+            },
+          ],
+        },
+        {
+          label: "教育类型",
+          prop: "educationName",
+          hidden: true,
+        },
+        {
+          label: "培训项目",
+          prop2: "businessName",
+          hidden: true,
+        },
+        {
+          label: "结算金额",
+          hidden: true,
+          scope: "solt",
+          soltName: "orderPrice",
+        },
+        {
+          label: "供应商",
+          prop: "instName",
+          hidden: true,
+        },
+        {
+          label: "收款信息",
+          hidden: true,
+          scope: "solt",
+          soltName: "bank",
+        },
+        {
+          label: "审核状态",
+          hidden: true,
+          scope: "solt",
+          soltName: "status",
+        },
+        {
+          label: "审核时间",
+          prop: "checkTime",
+          hidden: true,
+          scope: "aTimeList",
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+    };
+  },
+  created() {
+    this.search();
+    this.getStatistics(this.formData);
+  },
+  computed: {
+    getCheckStatus: function () {
+      return function (i) {
+        var a = "";
+        switch (i) {
+          case 1:
+            a = "待提交";
+            break;
+          case 7:
+            a = "待审核";
+            break;
+          case 2:
+            a = "审核中";
+            break;
+          case 3:
+            a = "未通过";
+            break;
+          case 4:
+            a = "待支付";
+            break;
+          case 5:
+            a = "支付失败";
+            break;
+          case 6:
+            a = "已结算";
+            break;
+          default:
+            break;
+        }
+        return a;
+      };
+    },
+  },
+  methods: {
+    getStatistics(datas) {
+      var data = JSON.parse(JSON.stringify(datas));
+      delete data.pageNum;
+      delete data.pageSize;
+      this.$api.settletotalmoney(data).then((res) => {
+        this.statisticsData = { settlementAmount: res.data } || {};
+      });
+    },
+    search(v) {
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      if (v === 3) {
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      this.getStatistics(data);
+      this.$api
+        .settlelist(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.search_box_page {
+  /deep/ .el-select {
+    width: 120px;
+  }
+  /deep/ .el-form-item__content > .el-input {
+    width: 190px;
+  }
+}
+.cell > .el-button + .el-button {
+  // margin-left: 0px;
+}
+.warning_text_btn {
+  color: rgb(230, 162, 60);
+}
+.is-disabled {
+  color: #c0c4cc;
+}
+</style>

+ 1 - 1
src/views/financed/components/dislogOrderDetails.vue

@@ -147,7 +147,7 @@ export default {
         { label: "机构名称", key: "tenantName" },
         { label: "业务员", key: "createUsername" },
         { label: "业务号", key: "createNo" },
-        { label: "业务分类", key: "schemeName" },
+        { label: "业务归属", key: "schemeName" },
         { label: "订单来源", key: "orderOrg" },
         { label: "申请时间", key: "buyTime", type: "time" },
         { label: "盈亏(元)", key: "orderProfit", type: "money" },

+ 2 - 1
src/views/financed/components/refund/dislogSet.vue

@@ -9,7 +9,7 @@
       @submit="submitForm"
       :confirmName="form.checkType === 3 ? '确定支付' : '确定'"
     >
-      <div>
+      <div v-if="formPay.toBankAcount">
         <em>收款信息:</em>
         <el-form
           :model="formPay"
@@ -138,6 +138,7 @@ export default {
       type: String,
       default: "",
     },
+    
   },
   data() {
     return {

+ 102 - 0
src/views/financed/components/trainee/auditProgress.vue

@@ -0,0 +1,102 @@
+<template>
+  <div>
+    <BaseDialog
+      width="700px"
+      :isShow.sync="isShow"
+      title="退款审核"
+      @close="close"
+      @submit="submitForm"
+      :appendToBody="true"
+      :confirmStatus="false"
+    >
+      <el-timeline>
+        <el-timeline-item
+          v-for="(item, index) in checkLogVos"
+          :timestamp="$methodsTools.onlyForma(item.checkTime)"
+          placement="top"
+          :color="
+            item.checkSign === 1
+              ? '#409EFF'
+              : item.checkStatus === 1
+              ? '#67C23A'
+              : item.checkStatus === -1
+              ? '#F56C6C'
+              : '#e4e4e4'
+          "
+        >
+          <el-card>
+            <h4>负责人:{{ item.roleName }}</h4>
+            <p>
+              审核状态:{{
+                item.checkStatus === 0
+                  ? "待审核"
+                  : item.checkStatus === 1
+                  ? "已通过"
+                  : item.checkStatus === -1
+                  ? "未通过"
+                  : ""
+              }}
+            </p>
+            <p>审核意见:{{ item.checkReason }}</p>
+          </el-card>
+        </el-timeline-item>
+      </el-timeline>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  // name: "DislogSet",
+  props: {
+    auditProgress: {
+      type: Boolean,
+      default: false,
+    },
+    checkLogVos: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  },
+  data() {
+    return {
+      active: 2,
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    init() {
+      console.log(this.checkLogVos, "checkLogVos");
+    },
+    close() {},
+    submitForm() {
+      this.isShow = false;
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.auditProgress) {
+          this.init();
+        }
+        return this.auditProgress;
+      },
+      set(val) {
+        this.$emit("update:auditProgress", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-timeline {
+  padding: 0px 6px;
+  max-height: 600px;
+  overflow: auto;
+}
+</style>

+ 261 - 0
src/views/financed/components/trainee/dislogSetTrainee.vue

@@ -0,0 +1,261 @@
+<template>
+  <div>
+    <BaseDialog
+      :disabledBtn="disabledBtn"
+      width="900px"
+      :isShow.sync="isShow"
+      title="'学员审核"
+      @close="close"
+      @submit="submitForm"
+    >
+      <p style="margin-top: 0">
+        申请时间:{{ $methodsTools.onlyForma(form.applyTime) }}
+      </p>
+      <p>
+        <span class="color_1890ff">{{ form.applyName }}</span>
+        <span>,发起学员修改申请</span>
+      </p>
+      <div class="bgc_pink">
+        <p>
+          <strong>订单号:</strong><span>123456124356124356142365</span>
+          <el-button type="text" style="margin-left: 10px">订单详情</el-button>
+        </p>
+        <el-table
+        size="small"
+          :span-method="objectSpanMethod"
+          border
+          :data="tableData"
+          stripe
+          style="width: 100%"
+          height="340"
+        >
+          <el-table-column
+            align="center"
+            type="index"
+            label="序号"
+            width="70"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            v-for="(item, index) in tableList"
+            :key="index"
+            :prop="item.prop"
+            :label="item.label"
+            :width="item.width"
+          >
+            <template slot-scope="scope">{{ scope.row[item.prop] }}</template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          :total="total"
+          :pageSize.sync="refFormData.pageSize"
+          :currentPage.sync="refFormData.pageNum"
+          @search="search"
+        />
+      </div>
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+      >
+        <el-form-item prop="checkResult" label="审核结果:">
+          <el-radio-group v-model="formData.checkResult">
+            <el-radio label="1">同意</el-radio>
+            <el-radio label="-1">拒绝</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item prop="checkReason" label="审核意见:">
+          <el-input
+            type="textarea"
+            placeholder="请输入审核意见"
+            v-model="formData.checkReason"
+          ></el-input> </el-form-item
+      ></el-form>
+      <template slot="slotBtn">
+        <el-button @click="auditProgress = true">审核进度</el-button>
+      </template>
+      <audit-progress
+        :auditProgress.sync="auditProgress"
+        :checkLogVos="form.checkLogVos"
+      ></audit-progress>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+import pagination from "@/components/pagination";
+import auditProgress from "./auditProgress.vue";
+export default {
+  components: {
+    auditProgress,
+    pagination,
+  },
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    orderSn: {
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      form: {},
+      disabledBtn: false,
+      auditProgress: false,
+      formData: {
+        checkResult: "",
+        checkReason: "",
+      },
+      rules: {
+        checkResult: [
+          { required: true, message: "请选择审核结果", trigger: "change" },
+        ],
+        checkReason: [
+          { required: false, message: "请输入审核意见", trigger: "blur" },
+        ],
+      },
+      tableData: [
+        {
+          id: 1,
+          name: "tang",
+          idCard: "445224199901040000",
+        },
+        {
+          id: 2,
+          name: "li",
+          idCard: "445224199000000000",
+        },
+        {
+          id: 3,
+          name: "chen",
+          idCard: "445224199901040000",
+        },
+        {
+          id: 4,
+          name: "huang",
+          idCard: "445224199000000000",
+        },
+        {
+          id: 5,
+          name: "chen",
+          idCard: "445224199901040000",
+        },
+        {
+          id: 6,
+          name: "huang",
+          idCard: "445224199000000000",
+        },
+        {
+          id: 7,
+          name: "chen",
+          idCard: "445224199901040000",
+        },
+        {
+          id: 8,
+          name: "huang",
+          idCard: "445224199000000000",
+        },
+      ],
+      tableList: [
+        {
+          label: "姓名",
+          prop: "name",
+        },
+        {
+          label: "身份证号",
+          prop: "idCard",
+        },
+      ],
+      refFormData: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      total: 0,
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    init() {},
+    search() {},
+    close() {
+      this.$refs.formData.resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.disabledBtn = true;
+          this.$api
+            .systemtoporderrefundcheck({
+              orderSn: this.orderSn,
+              ...this.formData,
+            })
+            .then((res) => {
+              this.isShow = false;
+              this.$emit("search");
+            })
+            .finally(() => {
+              this.disabledBtn = false;
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 0) {
+        if (rowIndex % 2 == 0) {
+          return {
+            rowspan: 2,
+            colspan: 1,
+          };
+        } else {
+          return {
+            rowspan: 0,
+            colspan: 1,
+          };
+        }
+      }
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.bgc_pink {
+  padding: 10px;
+  background-color: rgb(252, 234, 236);
+  color: #000;
+}
+.color_red {
+  font-weight: bold;
+  color: rgb(235, 59, 59);
+}
+.color_1890ff {
+  color: #1890ff;
+  font-weight: bold;
+}
+em {
+  font-weight: bold;
+  color: #000;
+  font-style: unset;
+}
+</style>

+ 934 - 0
src/views/financed/orderManageList/independent/index.vue

@@ -0,0 +1,934 @@
+<template>
+  <div id="independent">
+    <search-box-new
+      class="search_box_page"
+      ref="searchBox"
+      :redIcon="false"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <div class="dis_flex_order_li">
+      <div class="list" v-for="(item, index) in ShowTabList" :key="index">
+        <img :src="item.img" alt="" />
+        <div class="right">
+          <h4>
+            {{ item.label }}:
+            <span
+              v-if="item.label === '盈亏' && statisticsData[item.prop] !== 0"
+              ><span
+                :style="
+                  statisticsData[item.prop] > 0
+                    ? 'color:rgb(99,93,247)'
+                    : 'color:red'
+                "
+                >【{{ statisticsData[item.prop] > 0 ? "盈" : "亏" }}】</span
+              ></span
+            >
+          </h4>
+          <p>
+            {{
+              formatPrice(
+                statisticsData[item.prop],
+                item.ch === "元" ? true : false
+              )
+            }}{{ item.ch }}
+          </p>
+        </div>
+      </div>
+    </div>
+    <table-list
+      rowKey="orderId"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-checkbox
+          style="margin-right: 10px"
+          v-model="formData.check"
+          :true-label="1"
+          :false-label="0"
+          >修改补款</el-checkbox
+        >
+        <el-button size="small" @click="exportData">导出excel</el-button>
+      </template>
+      <template slot="orderInfo" slot-scope="props">
+        <div>机构名称:{{ props.scope.row["tenantName"] }}</div>
+        <div>业务员:{{ props.scope.row["createUsername"] }}</div>
+        <div>业务号:{{ props.scope.row["createNo"] }}</div>
+        <div>订单来源:{{ props.scope.row["orderOrg"] }}</div>
+        <div>
+          订单日期:{{ $methodsTools.onlyForma(props.scope.row["buyTime"]) }}
+        </div>
+        <div>订单号:{{ props.scope.row["orderSn"] }}</div>
+      </template>
+      <template slot="orderPrice" slot-scope="props">
+        <div>
+          订单金额:{{
+            $methodsTools.decimalPoint(props.scope.row["orderPrice"])
+          }}
+        </div>
+        <div>
+          税前佣金:{{
+            $methodsTools.decimalPoint(props.scope.row["pretaxBrokerage"])
+          }}
+        </div>
+        <div>
+          已收账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderReceived"])
+          }}
+        </div>
+        <div>
+          申请退款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderRefund"])
+          }}
+        </div>
+        <div>
+          已退账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderRefunded"])
+          }}
+        </div>
+        <div>
+          未收账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderUncollected"])
+          }}
+        </div>
+        <div style="color: red">
+          (预计收款时间){{
+            $methodsTools.onlyForma(props.scope.row["predictReceiveTime"])
+          }}
+        </div>
+        <div>
+          实际账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderPractical"])
+          }}
+        </div>
+        <div>
+          <!-- 修改补款:{{$methodsTools.decimalPoint(props.scope.row[""])}} -->
+        </div>
+      </template>
+      <template slot="inon" slot-scope="props">
+        <div>
+          成本(元):{{
+            $methodsTools.decimalPoint(props.scope.row["orderCost"])
+          }}
+        </div>
+        <div>
+          盈亏(元):{{
+            $methodsTools.decimalPoint(props.scope.row["orderProfit"])
+          }}
+        </div>
+        <div v-if="props.scope.row['orderProfit']">
+          <span
+            :style="
+              props.scope.row['orderProfit'] > 0
+                ? 'color:rgb(99,93,247)'
+                : 'color:red'
+            "
+          >
+            【{{ props.scope.row["orderProfit"] > 0 ? "盈" : "亏" }}】</span
+          >
+        </div>
+      </template>
+      <template slot="statusRoles" slot-scope="props">
+        <div>
+          {{ refundStatus(props.scope.row["refundStatus"])
+          }}<span style="color: red" v-if="props.scope.row['refundName']"
+            >({{ props.scope.row["refundName"] }})</span
+          >
+        </div>
+      </template>
+      <template slot="type" slot-scope="props">
+        <div v-for="(item, index) in props.scope.row['businessNames']">
+          {{ item }}
+        </div>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button
+          type="text"
+          @click="openDialog(props.scope.row)"
+          :disabled="disabledStatus(props.scope.row.commercialTenant)"
+          >查看详情</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <el-image-viewer
+      v-if="showViewer"
+      :on-close="
+        () => {
+          showViewer = false;
+        }
+      "
+      :url-list="imgList"
+    >
+    </el-image-viewer>
+    <dislog-set
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :type="2"
+      :orderSn="orderSn"
+      :checkRoleName="orderInfo.refundName"
+    ></dislog-set>
+    <dislog-set-trainee
+      :dialogVisible.sync="dialogVisibleTrainee"
+      @search="search"
+      :orderSn="orderSn"
+    ></dislog-set-trainee>
+    <remarks
+      :dialogVisible.sync="remarksVisible"
+      @search="search"
+      :options="remarksOptions"
+    ></remarks>
+    <dislogOrderDetails
+      :dialogVisible.sync="orderDialogVisible"
+      :orderSn="orderSn"
+      :orderFrom="orderFrom"
+      :ShowStatus="ShowStatus"
+      @search="search"
+    ></dislogOrderDetails>
+    <dislog-set-cost
+      :dialogVisible.sync="dialogVisiblecost"
+      :tpId="tpId"
+      :type="type"
+      @search="search"
+    ></dislog-set-cost>
+  </div>
+</template>
+
+<script>
+import { exportFn } from "@/utils/index.js";
+import dislogSetCost from "../../cost/dislogSet.vue";
+import dislogSet from "../../components/refund/dislogSet.vue";
+import dislogSetTrainee from "../../components/trainee/dislogSetTrainee.vue";
+import remarks from "../../components/remarks.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+import dislogOrderDetails from "../../components/dislogOrderDetails.vue";
+export default {
+  name: "Independent",
+  components: {
+    searchBoxNew,
+    tableList,
+    pagination,
+    dislogSet,
+    remarks,
+    dislogOrderDetails,
+    dislogSetCost,
+    dislogSetTrainee,
+    "el-image-viewer": () =>
+      import("element-ui/packages/image/src/image-viewer"),
+  },
+  data() {
+    return {
+      showViewer: false,
+      imgList: [],
+      ShowTabList: [
+        {
+          label: "盈亏",
+          prop: "orderProfitTotal",
+          img: require("@/assets/images/盈亏@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "合同金额",
+          prop: "orderPriceTotal",
+          img: require("@/assets/images/合同金额@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "已收账款",
+          prop: "orderReceivedTotal",
+          img: require("@/assets/images/已收款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "已退账款",
+          prop: "orderRefundedTotal",
+          img: require("@/assets/images/已退款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "未收账款",
+          prop: "orderUncollectedTotal",
+          img: require("@/assets/images/未收款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "实际账款",
+          prop: "practicalPriceTotal",
+          img: require("@/assets/images/实际款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "成本金额",
+          prop: "orderCostTotal",
+          img: require("@/assets/images/成本金额@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "订单人数",
+          prop: "orderUserNum",
+          img: require("@/assets/images/订单人数@2x.png"),
+          price: "16102",
+          ch: "个",
+        },
+        {
+          label: "订单数",
+          prop: "orderNum",
+          img: require("@/assets/images/订单数@2x.png"),
+          price: "16201",
+          ch: "个",
+        },
+      ],
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "订单管理",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: true,
+        openCheckMore: true,
+        changeWidth: "160px",
+        custom: false,
+        backFatherBtn: {
+          status: false,
+          title: "配置下单填选模板",
+        },
+        selectableStatus: true,
+        selectableFunc: (row, rowIndex) => {
+          if (row.commercialTenant === 1) {
+            return false;
+          } else {
+            return true;
+          }
+        },
+      },
+      //搜索
+      formList: [
+        // {
+        //   prop: "roleId",
+        //   placeholder: "角色分类",
+        //   scope: "select",
+        //   options: [
+        //     { label: "会计", value: 0 },
+        //     { label: "财务", value: 1 },
+        //     { label: "出纳", value: 2 },
+        //   ],
+        // },
+        // {
+        //   prop: "businessFullName",
+        //   placeholder: "业务分类",
+        //   scope: "select",
+        //   options: [
+        //     { label: "学校业务", value: 1 },
+        //     { label: "办证质询", value: 2 },
+        //   ],
+        // },
+        // {
+        //   prop: "invoiceStatus",
+        //   placeholder: "开票状态",
+        //   scope: "select",
+        //   options: [
+        //     { label: "已开票", value: 1 },
+        //     { label: "未开票", value: 0 },
+        //   ],
+        // },
+        // {
+        //   placeholder: "审核时间",
+        //   prop1: "checkStartTime",
+        //   prop2: "checkEndTime",
+        //   placeholder1: "审核开始日期",
+        //   placeholder2: "审核结束日期",
+        //   scope: "moreDataPicker",
+        //   Diszing: true,
+        // },
+        // {
+        //   prop: "userCard",
+        //   placeholder: "身份号",
+        // },
+        {
+          prop: "educationTypeId",
+          placeholder: "教育类型",
+          scope: "educationType",
+          schemeName: true,
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "tenantId",
+          placeholder: "所属机构",
+          scope: "systemtenantlist",
+        },
+        {
+          prop: "checkStatus",
+          placeholder: "订单状态",
+          scope: "select",
+          options: [
+            { label: "待审核", value: 0 },
+            { label: "已通过", value: 1 },
+            { label: "未通过", value: 2 },
+            { label: "已撤销", value: 3 },
+          ],
+        },
+        {
+          prop: "refundStatus",
+          placeholder: "退款状态",
+          scope: "select",
+          options: [
+            { label: "待审核", value: 0 },
+            { label: "正常", value: 1 },
+            { label: "未退款", value: 2 },
+            { label: "已完成", value: 3 },
+            { label: "未通过", value: 4 },
+            { label: "支付中", value: 5 },
+            { label: "支付失败", value: 6 },
+          ],
+        },
+        {
+          prop: "abc",
+          placeholder: "学员状态",
+          scope: "select",
+          options: [{ label: "未设置", value: 1 }],
+        },
+        {
+          prop: "creditStatus",
+          placeholder: "账款状态",
+          scope: "select",
+          options: [
+            { label: "已结清", value: 1 },
+            { label: "未结清", value: 0 },
+          ],
+        },
+        {
+          prop: "finishStatus",
+          placeholder: "完单状态",
+          scope: "select",
+          options: [
+            { label: "已完单", value: 1 },
+            { label: "未完单", value: 0 },
+          ],
+        },
+        {
+          prop: "orderOrg",
+          placeholder: "输入订单来源",
+        },
+        {
+          prop: "keyword",
+          placeholder: "订单号/业务号/下单企业",
+        },
+        {
+          prop: "userName",
+          placeholder: "学员姓名",
+        },
+        {
+          placeholder: "时间",
+          prop1: "startTime",
+          prop2: "endTime",
+          placeholder1: "订单开始日期",
+          placeholder2: "订单结束日期",
+          scope: "moreDataPicker",
+          Diszing: true,
+        },
+      ],
+      formData: {
+        pageSize: 10,
+        pageNum: 1,
+        checkStatus: 0,
+      },
+      // 表单
+      tableSet: [
+        {
+          label: "订单类型",
+          prop: "",
+          hidden: true,
+        },
+        {
+          label: "业务类型",
+          prop: "businessNames",
+          hidden: true,
+          scope: "solt",
+          soltName: "type",
+        },
+        {
+          label: "订单信息",
+          prop: "name",
+          hidden: true,
+          scope: "solt",
+          soltName: "orderInfo",
+          width: "300px",
+        },
+        {
+          label: "订单金额(元)",
+          prop: "posterTempName",
+          hidden: true,
+          scope: "solt",
+          soltName: "orderPrice",
+        },
+        {
+          label: "投入产出",
+          prop: "posterTempName1",
+          hidden: true,
+          scope: "solt",
+          soltName: "inon",
+        },
+        {
+          label: "订单状态",
+          prop: "checkStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            {
+              label: "待审核",
+              value: 0,
+            },
+            {
+              label: "已通过",
+              value: 1,
+            },
+            {
+              label: "未通过",
+              value: 2,
+            },
+            {
+              label: "已撤销",
+              value: 3,
+            },
+          ],
+        },
+        {
+          label: "退款状态",
+          prop: "startTime",
+          hidden: true,
+          scope: "solt",
+          soltName: "statusRoles",
+        },
+        {
+          label: "学员状态",
+          prop: "studentCheckStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            {
+              label: "待审核",
+              value: 0,
+            },
+            {
+              label: "已审核",
+              value: 1,
+            },
+          ],
+        },
+        {
+          label: "完单状态",
+          prop: "finishStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            { label: "已完单", value: 1 },
+            { label: "未完单", value: 0 },
+          ],
+        },
+        {
+          label: "下单企业",
+          prop: "purchaseOrg",
+          hidden: true,
+        },
+        {
+          label: "发票状态",
+          prop: "invoiceStatus",
+          hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "未开票",
+              value: 0,
+            },
+            {
+              label: "已开票",
+              value: 1,
+            },
+          ],
+        },
+        {
+          label: "业务员备注",
+          prop: "remark",
+          hidden: false,
+        },
+        {
+          label: "财务备注",
+          prop: "financeRemark",
+          hidden: false,
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      dialogVisible: false,
+      dialogVisibleTrainee: false,
+      remarksVisible: false,
+      orderDialogVisible: false,
+      id: "",
+      statisticsData: {},
+      remarksOptions: [],
+      orderSn: null,
+      orderFrom: null,
+      ShowStatus: false,
+      dialogVisiblecost: false,
+      tpId: "",
+      type: null,
+      orderInfo: {},
+    };
+  },
+  created() {
+    this.search();
+    this.getStatistics(this.formData);
+  },
+  methods: {
+    getRoles(roleId) {
+      if (
+        (this.$store.state.user.rolesId?.length > 0 &&
+          this.$store.state.user.rolesId.includes(roleId)) ||
+        this.$store.state.user.rolesId.includes(1)
+      ) {
+        return false;
+      } else {
+        return true;
+      }
+    },
+    disabledStatus(c) {
+      if (c === 1) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    formatPrice(price, status) {
+      return price?.toLocaleString(
+        "zh-CN",
+        (undefined,
+        {
+          minimumFractionDigits: status ? 2 : 0,
+          maximumFractionDigits: status ? 4 : 0,
+        })
+      );
+    },
+    //退款状态
+    refundStatus(i) {
+      var str = "";
+      switch (i) {
+        case 0:
+          str = "待审核";
+          break;
+        case 1:
+          str = "正常";
+          break;
+        case 2:
+          str = "未退款";
+          break;
+        case 3:
+          str = "已完成";
+          break;
+        case 4:
+          str = "未通过";
+          break;
+        case 5:
+          str = "支付中";
+          break;
+        case 6:
+          str = "支付失败";
+          break;
+        default:
+          break;
+      }
+      return str;
+    },
+
+    exportData() {
+      var data = JSON.parse(JSON.stringify(this.formData));
+      if (data.roleId === 0 || data.roleId === 1) {
+        data.refundStatusList = "0,3,4";
+      }
+      if (data.roleId === 2) {
+        data.refundStatusList = "2,3";
+      }
+      this.$api.systemtoporderexport(data).then((res) => {
+        if (res.msg) {
+          exportFn(res.msg, `导出数据`);
+        } else {
+          this.$message.error("导出失败");
+        }
+      });
+    },
+
+    editCost() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.error("请勾选数据");
+        return;
+      }
+      this.dialogVisiblecost = true;
+      this.type = 4;
+      this.tpId = this.$refs.tableList.allCheckData
+        .map((i) => i.orderSn)
+        .toString();
+    },
+    completeOrder(orderSn, type) {
+      let A = (status) => {
+        this.$api
+          .systemtoporderfinish({
+            finishStatus: status,
+            orderSnList: orderSn
+              ? [orderSn]
+              : this.$refs.tableList.allCheckData.map((i) => i.orderSn),
+          })
+          .then((res) => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+            this.search(3);
+          });
+      };
+      if (!orderSn && this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.error("请勾选数据");
+        return;
+      }
+      if (
+        this.$refs.tableList.allCheckData.every((i) => {
+          if (type === 1) {
+            return i.finishSign === 1 && i.finishStatus === 0;
+          }
+          if (type === 0) {
+            return i.finishStatus === 1;
+          }
+        })
+      ) {
+        this.$confirm(type === 1 ? "确认" : "取消" + "完单状态?", "提示", {
+          confirmButtonText: `${type === 1 ? "确认" : "取消"}完单`,
+          cancelButtonText: "关闭",
+          type: "warning",
+          distinguishCancelAndClose: true,
+        })
+          .then(() => {
+            A(type);
+          })
+          .catch((err) => {
+            // if (err === "cancel") {
+            //   A(0);
+            // }
+          });
+      } else {
+        this.$message.error("批量数据存在不允许操作数据,请联系管理员修复");
+        return;
+      }
+    },
+    handelClickCost(item) {
+      this.dialogVisiblecost = true;
+      this.type = 3;
+      this.tpId = item.orderSn;
+    },
+    openDialog(data, e) {
+      if (e === 1) {
+        this.ShowStatus = true;
+      } else {
+        this.ShowStatus = false;
+      }
+      this.orderInfo = data;
+      this.orderSn = data.orderSn;
+      this.orderFrom = data.orderFrom;
+      this.orderDialogVisible = true;
+    },
+    seePZ(ary) {
+      if (ary?.length > 0) {
+        this.imgList = ary.map((item) => item.attachmentUrl);
+        this.showViewer = true;
+      } else {
+        this.$message.warning("暂无转账凭证");
+        this.imgList = [];
+        return;
+      }
+    },
+    getStatistics(datas) {
+      var data = JSON.parse(JSON.stringify(datas));
+      delete data.pageNum;
+      delete data.pageSize;
+      this.$api.systemtoporderstatistics(data).then((res) => {
+        this.statisticsData = res.data || {};
+      });
+    },
+    editRemarks(item) {
+      if (item === 1) {
+        if (this.$refs.tableList.allCheckData.length === 0) {
+          this.$message.error("请勾选数据");
+          return;
+        }
+        this.remarksOptions = this.$refs.tableList.allCheckData;
+        this.remarksVisible = true;
+      } else {
+        this.remarksOptions = [item];
+        this.remarksVisible = true;
+      }
+    },
+    handelClick(data, type) {
+      // type = 1 学员 type = 2退款
+      this.orderSn = data.orderSn;
+      if (type == 1) {
+        this.dialogVisibleTrainee = true;
+      }
+      if (type == 2) {
+        this.dialogVisible = true;
+      }
+    },
+    changeStatus(val) {
+      console.log(val);
+    },
+    batchDel() {
+      let len = this.$refs.tableList.allCheckData.length;
+      if (!len) {
+        return this.$message.warning("请先勾选模板");
+      }
+      const ids = this.$refs.tableList.allCheckData.map((item) => item.id);
+    },
+    handelDel(id) {
+      this.$confirm("此操作将删除该模板, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api.editUser(id).then((res) => {
+            if (res.code === 200) {
+              this.$message.success("删除成功");
+              this.search();
+            }
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    search(v) {
+      this.loading = true;
+      if (this.type === 4) {
+        this.$refs.tableList.clearMoreActive();
+        this.type = null;
+      }
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+          checkStatus: 0,
+        };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      if (v === 3) {
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      if (data.roleId === 0 || data.roleId === 1) {
+        data.refundStatusList = "0,3,4";
+      }
+      if (data.roleId === 2) {
+        data.refundStatusList = "2,3";
+      }
+      this.getStatistics(data);
+      this.$api
+        .systemtoporderlist(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.search_box_page {
+  /deep/ .el-select {
+    width: 120px;
+  }
+  /deep/ .el-form-item__content > .el-input {
+    width: 190px;
+  }
+}
+.cell > .el-button + .el-button {
+  // margin-left: 0px;
+}
+.dis_flex_order_li {
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  & > .list {
+    user-select: none;
+    cursor: pointer;
+    transition: all 0.3s;
+    box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.2);
+    &:hover {
+      transform: scale(1.04);
+    }
+    width: 136px;
+    height: 44px;
+    border-radius: 6px;
+    display: flex;
+    align-items: center;
+    flex-shrink: 0;
+    margin-right: 10px;
+    margin-bottom: 10px;
+    & > img {
+      margin-left: 2px;
+      width: 40px;
+      height: 40px;
+    }
+    & > .right {
+      flex: 1;
+      padding-left: 4px;
+      & > h4 {
+        color: #000;
+        margin: 0;
+        font-size: 12px;
+      }
+      & > p {
+        font-size: 12px;
+        color: red;
+        margin: 0;
+      }
+    }
+  }
+}
+</style>

+ 1 - 1
src/views/financed/orderManageList/index.vue

@@ -953,4 +953,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 1012 - 0
src/views/financed/orderManageList/operate/index.vue

@@ -0,0 +1,1012 @@
+<template>
+  <div id="operate">
+    <search-box-new
+      class="search_box_page"
+      ref="searchBox"
+      :redIcon="false"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <div class="dis_flex_order_li">
+      <div class="list" v-for="(item, index) in ShowTabList" :key="index">
+        <img :src="item.img" alt="" />
+        <div class="right">
+          <h4>
+            {{ item.label }}:
+            <span
+              v-if="item.label === '盈亏' && statisticsData[item.prop] !== 0"
+              ><span
+                :style="
+                  statisticsData[item.prop] > 0
+                    ? 'color:rgb(99,93,247)'
+                    : 'color:red'
+                "
+                >【{{ statisticsData[item.prop] > 0 ? "盈" : "亏" }}】</span
+              ></span
+            >
+          </h4>
+          <p>
+            {{
+              formatPrice(
+                statisticsData[item.prop],
+                item.ch === "元" ? true : false
+              )
+            }}{{ item.ch }}
+          </p>
+        </div>
+      </div>
+    </div>
+    <table-list
+      rowKey="orderId"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-checkbox
+          style="margin-right: 10px"
+          v-model="formData.check"
+          :true-label="1"
+          :false-label="0"
+          >修改补款</el-checkbox
+        >
+        <el-button type="primary" size="small" @click="editCost"
+          >成本设置</el-button
+        >
+        <el-button type="primary" size="small" @click="completeOrder(false, 1)"
+          >完单确认</el-button
+        >
+        <el-button type="warning" size="small" @click="completeOrder(false, 0)"
+          >完单取消</el-button
+        >
+        <el-button
+          v-if="false"
+          type="primary"
+          size="small"
+          @click="editRemarks(1)"
+          >修改备注</el-button
+        >
+        <el-button size="small" @click="exportData">导出excel</el-button>
+      </template>
+      <template slot="orderInfo" slot-scope="props">
+        <div>机构名称:{{ props.scope.row["tenantName"] }}</div>
+        <div>业务员:{{ props.scope.row["createUsername"] }}</div>
+        <div>业务号:{{ props.scope.row["createNo"] }}</div>
+        <div>订单来源:{{ props.scope.row["orderOrg"] }}</div>
+        <div>
+          订单日期:{{ $methodsTools.onlyForma(props.scope.row["buyTime"]) }}
+        </div>
+        <div>订单号:{{ props.scope.row["orderSn"] }}</div>
+      </template>
+      <template slot="orderPrice" slot-scope="props">
+        <div>
+          订单金额:{{
+            $methodsTools.decimalPoint(props.scope.row["orderPrice"])
+          }}
+        </div>
+        <div>
+          税前佣金:{{
+            $methodsTools.decimalPoint(props.scope.row["pretaxBrokerage"])
+          }}
+        </div>
+        <div>
+          已收账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderReceived"])
+          }}
+        </div>
+        <div>
+          申请退款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderRefund"])
+          }}
+        </div>
+        <div>
+          已退账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderRefunded"])
+          }}
+        </div>
+        <div>
+          未收账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderUncollected"])
+          }}
+        </div>
+        <div style="color: red">
+          (预计收款时间){{
+            $methodsTools.onlyForma(props.scope.row["predictReceiveTime"])
+          }}
+        </div>
+        <div>
+          实际账款:{{
+            $methodsTools.decimalPoint(props.scope.row["orderPractical"])
+          }}
+        </div>
+        <div>
+          <!-- 修改补款:{{$methodsTools.decimalPoint(props.scope.row[""])}} -->
+        </div>
+      </template>
+      <template slot="inon" slot-scope="props">
+        <div>
+          成本(元):{{
+            $methodsTools.decimalPoint(props.scope.row["orderCost"])
+          }}
+        </div>
+        <div>
+          盈亏(元):{{
+            $methodsTools.decimalPoint(props.scope.row["orderProfit"])
+          }}
+        </div>
+        <div v-if="props.scope.row['orderProfit']">
+          <span
+            :style="
+              props.scope.row['orderProfit'] > 0
+                ? 'color:rgb(99,93,247)'
+                : 'color:red'
+            "
+          >
+            【{{ props.scope.row["orderProfit"] > 0 ? "盈" : "亏" }}】</span
+          >
+        </div>
+      </template>
+      <template slot="statusRoles" slot-scope="props">
+        <div>
+          {{ refundStatus(props.scope.row["refundStatus"])
+          }}<span style="color: red" v-if="props.scope.row['refundName']"
+            >({{ props.scope.row["refundName"] }})</span
+          >
+        </div>
+      </template>
+      <template slot="type" slot-scope="props">
+        <div v-for="(item, index) in props.scope.row['businessNames']">
+          {{ item }}
+        </div>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button
+          type="text"
+          @click="openDialog(props.scope.row)"
+          :disabled="disabledStatus(props.scope.row.commercialTenant)"
+          >查看详情</el-button
+        >
+        <el-button
+          type="text"
+          @click="handelClickCost(props.scope.row)"
+          :disabled="disabledStatus(props.scope.row.commercialTenant)"
+          >成本设置</el-button
+        >
+        <el-button
+          type="text"
+          @click="openDialog(props.scope.row, 1)"
+          :disabled="
+            props.scope.row.orderFrom !== 3 ||
+            props.scope.row.checkStatus === 3 ||
+            disabledStatus(props.scope.row.commercialTenant)
+          "
+          >订单审核</el-button
+        >
+        <el-button type="text" @click="handelClick(props.scope.row, 1)"
+          >学员审核</el-button
+        >
+        <el-button
+          type="text"
+          @click="handelClick(props.scope.row, 2)"
+          :disabled="
+            (props.scope.row.refundStatus !== 0 &&
+              props.scope.row.refundStatus !== 2) ||
+            disabledStatus(props.scope.row.commercialTenant) ||
+            getRoles(props.scope.row.refundRoleId)
+          "
+          >退款审核</el-button
+        >
+        <el-button
+          type="text"
+          @click="editRemarks(props.scope.row)"
+          :disabled="disabledStatus(props.scope.row.commercialTenant)"
+          >修改备注</el-button
+        >
+        <el-button
+          type="text"
+          @click="seePZ(props.scope.row.attachmentList)"
+          :disabled="disabledStatus(props.scope.row.commercialTenant)"
+          >转账凭证</el-button
+        >
+        <el-button
+          type="text"
+          :disabled="
+            !(
+              // props.scope.row.finishSign === 1 &&
+              (props.scope.row.finishStatus === 0)
+            ) || disabledStatus(props.scope.row.commercialTenant)
+          "
+          @click="completeOrder(props.scope.row.orderSn, 1)"
+          >完单确认</el-button
+        >
+        <el-button
+          type="text"
+          :disabled="
+            props.scope.row.finishStatus !== 1 ||
+            disabledStatus(props.scope.row.commercialTenant)
+          "
+          @click="completeOrder(props.scope.row.orderSn, 0)"
+          >完单取消</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <el-image-viewer
+      v-if="showViewer"
+      :on-close="
+        () => {
+          showViewer = false;
+        }
+      "
+      :url-list="imgList"
+    >
+    </el-image-viewer>
+    <dislog-set
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :type="2"
+      :orderSn="orderSn"
+      :checkRoleName="orderInfo.refundName"
+    ></dislog-set>
+    <dislog-set-trainee
+      :dialogVisible.sync="dialogVisibleTrainee"
+      @search="search"
+      :orderSn="orderSn"
+    ></dislog-set-trainee>
+    <remarks
+      :dialogVisible.sync="remarksVisible"
+      @search="search"
+      :options="remarksOptions"
+    ></remarks>
+    <dislogOrderDetails
+      :dialogVisible.sync="orderDialogVisible"
+      :orderSn="orderSn"
+      :orderFrom="orderFrom"
+      :ShowStatus="ShowStatus"
+      @search="search"
+    ></dislogOrderDetails>
+    <dislog-set-cost
+      :dialogVisible.sync="dialogVisiblecost"
+      :tpId="tpId"
+      :type="type"
+      @search="search"
+    ></dislog-set-cost>
+  </div>
+</template>
+
+<script>
+import { exportFn } from "@/utils/index.js";
+import dislogSetCost from "../../cost/dislogSet.vue";
+import dislogSet from "../../components/refund/dislogSet.vue";
+import dislogSetTrainee from "../../components/trainee/dislogSetTrainee.vue";
+import remarks from "../../components/remarks.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+import dislogOrderDetails from "../../components/dislogOrderDetails.vue";
+export default {
+  name: "Operate",
+  components: {
+    searchBoxNew,
+    tableList,
+    pagination,
+    dislogSet,
+    remarks,
+    dislogOrderDetails,
+    dislogSetCost,
+    dislogSetTrainee,
+    "el-image-viewer": () =>
+      import("element-ui/packages/image/src/image-viewer"),
+  },
+  data() {
+    return {
+      showViewer: false,
+      imgList: [],
+      ShowTabList: [
+        {
+          label: "盈亏",
+          prop: "orderProfitTotal",
+          img: require("@/assets/images/盈亏@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "合同金额",
+          prop: "orderPriceTotal",
+          img: require("@/assets/images/合同金额@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "已收账款",
+          prop: "orderReceivedTotal",
+          img: require("@/assets/images/已收款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "已退账款",
+          prop: "orderRefundedTotal",
+          img: require("@/assets/images/已退款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "未收账款",
+          prop: "orderUncollectedTotal",
+          img: require("@/assets/images/未收款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "实际账款",
+          prop: "practicalPriceTotal",
+          img: require("@/assets/images/实际款@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "成本金额",
+          prop: "orderCostTotal",
+          img: require("@/assets/images/成本金额@2x.png"),
+          price: "1200000000",
+          ch: "元",
+        },
+        {
+          label: "订单人数",
+          prop: "orderUserNum",
+          img: require("@/assets/images/订单人数@2x.png"),
+          price: "16102",
+          ch: "个",
+        },
+        {
+          label: "订单数",
+          prop: "orderNum",
+          img: require("@/assets/images/订单数@2x.png"),
+          price: "16201",
+          ch: "个",
+        },
+      ],
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "订单管理",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: true,
+        openCheckMore: true,
+        changeWidth: "160px",
+        custom: false,
+        backFatherBtn: {
+          status: false,
+          title: "配置下单填选模板",
+        },
+        selectableStatus: true,
+        selectableFunc: (row, rowIndex) => {
+          if (row.commercialTenant === 1) {
+            return false;
+          } else {
+            return true;
+          }
+        },
+      },
+      //搜索
+      formList: [
+        // {
+        //   prop: "roleId",
+        //   placeholder: "角色分类",
+        //   scope: "select",
+        //   options: [
+        //     { label: "会计", value: 0 },
+        //     { label: "财务", value: 1 },
+        //     { label: "出纳", value: 2 },
+        //   ],
+        // },
+        // {
+        //   prop: "businessFullName",
+        //   placeholder: "业务分类",
+        //   scope: "select",
+        //   options: [
+        //     { label: "学校业务", value: 1 },
+        //     { label: "办证质询", value: 2 },
+        //   ],
+        // },
+        // {
+        //   prop: "invoiceStatus",
+        //   placeholder: "开票状态",
+        //   scope: "select",
+        //   options: [
+        //     { label: "已开票", value: 1 },
+        //     { label: "未开票", value: 0 },
+        //   ],
+        // },
+        // {
+        //   placeholder: "审核时间",
+        //   prop1: "checkStartTime",
+        //   prop2: "checkEndTime",
+        //   placeholder1: "审核开始日期",
+        //   placeholder2: "审核结束日期",
+        //   scope: "moreDataPicker",
+        //   Diszing: true,
+        // },
+        // {
+        //   prop: "userCard",
+        //   placeholder: "身份号",
+        // },
+        {
+          prop: "educationTypeId",
+          placeholder: "教育类型",
+          scope: "educationType",
+          schemeName: true,
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "tenantId",
+          placeholder: "所属机构",
+          scope: "systemtenantlist",
+        },
+        {
+          prop: "checkStatus",
+          placeholder: "订单状态",
+          scope: "select",
+          options: [
+            { label: "待审核", value: 0 },
+            { label: "已通过", value: 1 },
+            { label: "未通过", value: 2 },
+            { label: "已撤销", value: 3 },
+          ],
+        },
+        {
+          prop: "refundStatus",
+          placeholder: "退款状态",
+          scope: "select",
+          options: [
+            { label: "待审核", value: 0 },
+            { label: "正常", value: 1 },
+            { label: "未退款", value: 2 },
+            { label: "已完成", value: 3 },
+            { label: "未通过", value: 4 },
+            { label: "支付中", value: 5 },
+            { label: "支付失败", value: 6 },
+          ],
+        },
+        {
+          prop: "abc",
+          placeholder: "学员状态",
+          scope: "select",
+          options: [{ label: "未设置", value: 1 }],
+        },
+        {
+          prop: "creditStatus",
+          placeholder: "账款状态",
+          scope: "select",
+          options: [
+            { label: "已结清", value: 1 },
+            { label: "未结清", value: 0 },
+          ],
+        },
+        {
+          prop: "finishStatus",
+          placeholder: "完单状态",
+          scope: "select",
+          options: [
+            { label: "已完单", value: 1 },
+            { label: "未完单", value: 0 },
+          ],
+        },
+        {
+          prop: "orderOrg",
+          placeholder: "输入订单来源",
+        },
+        {
+          prop: "keyword",
+          placeholder: "订单号/业务号/下单企业",
+        },
+        {
+          prop: "userName",
+          placeholder: "学员姓名",
+        },
+        {
+          placeholder: "时间",
+          prop1: "startTime",
+          prop2: "endTime",
+          placeholder1: "订单开始日期",
+          placeholder2: "订单结束日期",
+          scope: "moreDataPicker",
+          Diszing: true,
+        },
+      ],
+      formData: {
+        pageSize: 10,
+        pageNum: 1,
+        checkStatus: 0,
+      },
+      // 表单
+      tableSet: [
+        {
+          label: "订单类型",
+          prop: "",
+          hidden: true,
+        },
+        {
+          label: "业务类型",
+          prop: "businessNames",
+          hidden: true,
+          scope: "solt",
+          soltName: "type",
+        },
+        {
+          label: "订单信息",
+          prop: "name",
+          hidden: true,
+          scope: "solt",
+          soltName: "orderInfo",
+          width: "300px",
+        },
+        {
+          label: "订单金额(元)",
+          prop: "posterTempName",
+          hidden: true,
+          scope: "solt",
+          soltName: "orderPrice",
+        },
+        {
+          label: "投入产出",
+          prop: "posterTempName1",
+          hidden: true,
+          scope: "solt",
+          soltName: "inon",
+        },
+        {
+          label: "订单状态",
+          prop: "checkStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            {
+              label: "待审核",
+              value: 0,
+            },
+            {
+              label: "已通过",
+              value: 1,
+            },
+            {
+              label: "未通过",
+              value: 2,
+            },
+            {
+              label: "已撤销",
+              value: 3,
+            },
+          ],
+        },
+        {
+          label: "退款状态",
+          prop: "startTime",
+          hidden: true,
+          scope: "solt",
+          soltName: "statusRoles",
+        },
+        {
+          label: "学员状态",
+          prop: "studentCheckStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            {
+              label: "待审核",
+              value: 0,
+            },
+            {
+              label: "已审核",
+              value: 1,
+            },
+          ],
+        },
+        {
+          label: "完单状态",
+          prop: "finishStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            { label: "已完单", value: 1 },
+            { label: "未完单", value: 0 },
+          ],
+        },
+        {
+          label: "下单企业",
+          prop: "purchaseOrg",
+          hidden: true,
+        },
+        {
+          label: "发票状态",
+          prop: "invoiceStatus",
+          hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "未开票",
+              value: 0,
+            },
+            {
+              label: "已开票",
+              value: 1,
+            },
+          ],
+        },
+        {
+          label: "业务员备注",
+          prop: "remark",
+          hidden: false,
+        },
+        {
+          label: "财务备注",
+          prop: "financeRemark",
+          hidden: false,
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      dialogVisible: false,
+      dialogVisibleTrainee: false,
+      remarksVisible: false,
+      orderDialogVisible: false,
+      id: "",
+      statisticsData: {},
+      remarksOptions: [],
+      orderSn: null,
+      orderFrom: null,
+      ShowStatus: false,
+      dialogVisiblecost: false,
+      tpId: "",
+      type: null,
+      orderInfo: {},
+    };
+  },
+  created() {
+    this.search();
+    this.getStatistics(this.formData);
+  },
+  methods: {
+    getRoles(roleId) {
+      if (
+        (this.$store.state.user.rolesId?.length > 0 &&
+          this.$store.state.user.rolesId.includes(roleId)) ||
+        this.$store.state.user.rolesId.includes(1)
+      ) {
+        return false;
+      } else {
+        return true;
+      }
+    },
+    disabledStatus(c) {
+      if (c === 1) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    formatPrice(price, status) {
+      return price?.toLocaleString(
+        "zh-CN",
+        (undefined,
+        {
+          minimumFractionDigits: status ? 2 : 0,
+          maximumFractionDigits: status ? 4 : 0,
+        })
+      );
+    },
+    //退款状态
+    refundStatus(i) {
+      var str = "";
+      switch (i) {
+        case 0:
+          str = "待审核";
+          break;
+        case 1:
+          str = "正常";
+          break;
+        case 2:
+          str = "未退款";
+          break;
+        case 3:
+          str = "已完成";
+          break;
+        case 4:
+          str = "未通过";
+          break;
+        case 5:
+          str = "支付中";
+          break;
+        case 6:
+          str = "支付失败";
+          break;
+        default:
+          break;
+      }
+      return str;
+    },
+
+    exportData() {
+      var data = JSON.parse(JSON.stringify(this.formData));
+      if (data.roleId === 0 || data.roleId === 1) {
+        data.refundStatusList = "0,3,4";
+      }
+      if (data.roleId === 2) {
+        data.refundStatusList = "2,3";
+      }
+      this.$api.systemtoporderexport(data).then((res) => {
+        if (res.msg) {
+          exportFn(res.msg, `导出数据`);
+        } else {
+          this.$message.error("导出失败");
+        }
+      });
+    },
+
+    editCost() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.error("请勾选数据");
+        return;
+      }
+      this.dialogVisiblecost = true;
+      this.type = 4;
+      this.tpId = this.$refs.tableList.allCheckData
+        .map((i) => i.orderSn)
+        .toString();
+    },
+    completeOrder(orderSn, type) {
+      let A = (status) => {
+        this.$api
+          .systemtoporderfinish({
+            finishStatus: status,
+            orderSnList: orderSn
+              ? [orderSn]
+              : this.$refs.tableList.allCheckData.map((i) => i.orderSn),
+          })
+          .then((res) => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+            this.search(3);
+          });
+      };
+      if (!orderSn && this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.error("请勾选数据");
+        return;
+      }
+      if (
+        this.$refs.tableList.allCheckData.every((i) => {
+          if (type === 1) {
+            return i.finishSign === 1 && i.finishStatus === 0;
+          }
+          if (type === 0) {
+            return i.finishStatus === 1;
+          }
+        })
+      ) {
+        this.$confirm(type === 1 ? "确认" : "取消" + "完单状态?", "提示", {
+          confirmButtonText: `${type === 1 ? "确认" : "取消"}完单`,
+          cancelButtonText: "关闭",
+          type: "warning",
+          distinguishCancelAndClose: true,
+        })
+          .then(() => {
+            A(type);
+          })
+          .catch((err) => {
+            // if (err === "cancel") {
+            //   A(0);
+            // }
+          });
+      } else {
+        this.$message.error("批量数据存在不允许操作数据,请联系管理员修复");
+        return;
+      }
+    },
+    handelClickCost(item) {
+      this.dialogVisiblecost = true;
+      this.type = 3;
+      this.tpId = item.orderSn;
+    },
+    openDialog(data, e) {
+      if (e === 1) {
+        this.ShowStatus = true;
+      } else {
+        this.ShowStatus = false;
+      }
+      this.orderInfo = data;
+      this.orderSn = data.orderSn;
+      this.orderFrom = data.orderFrom;
+      this.orderDialogVisible = true;
+    },
+    seePZ(ary) {
+      if (ary?.length > 0) {
+        this.imgList = ary.map((item) => item.attachmentUrl);
+        this.showViewer = true;
+      } else {
+        this.$message.warning("暂无转账凭证");
+        this.imgList = [];
+        return;
+      }
+    },
+    getStatistics(datas) {
+      var data = JSON.parse(JSON.stringify(datas));
+      delete data.pageNum;
+      delete data.pageSize;
+      this.$api.systemtoporderstatistics(data).then((res) => {
+        this.statisticsData = res.data || {};
+      });
+    },
+    editRemarks(item) {
+      if (item === 1) {
+        if (this.$refs.tableList.allCheckData.length === 0) {
+          this.$message.error("请勾选数据");
+          return;
+        }
+        this.remarksOptions = this.$refs.tableList.allCheckData;
+        this.remarksVisible = true;
+      } else {
+        this.remarksOptions = [item];
+        this.remarksVisible = true;
+      }
+    },
+    handelClick(data, type) {
+      // type = 1 学员 type = 2退款
+      this.orderSn = data.orderSn;
+      if (type == 1) {
+        this.dialogVisibleTrainee = true;
+      }
+      if (type == 2) {
+        this.dialogVisible = true;
+      }
+    },
+    changeStatus(val) {
+      console.log(val);
+    },
+    batchDel() {
+      let len = this.$refs.tableList.allCheckData.length;
+      if (!len) {
+        return this.$message.warning("请先勾选模板");
+      }
+      const ids = this.$refs.tableList.allCheckData.map((item) => item.id);
+    },
+    handelDel(id) {
+      this.$confirm("此操作将删除该模板, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api.editUser(id).then((res) => {
+            if (res.code === 200) {
+              this.$message.success("删除成功");
+              this.search();
+            }
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    search(v) {
+      this.loading = true;
+      if (this.type === 4) {
+        this.$refs.tableList.clearMoreActive();
+        this.type = null;
+      }
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+          checkStatus: 0,
+        };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      if (v === 3) {
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      if (data.roleId === 0 || data.roleId === 1) {
+        data.refundStatusList = "0,3,4";
+      }
+      if (data.roleId === 2) {
+        data.refundStatusList = "2,3";
+      }
+      this.getStatistics(data);
+      this.$api
+        .systemtoporderlist(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.search_box_page {
+  /deep/ .el-select {
+    width: 120px;
+  }
+  /deep/ .el-form-item__content > .el-input {
+    width: 190px;
+  }
+}
+.cell > .el-button + .el-button {
+  // margin-left: 0px;
+}
+.dis_flex_order_li {
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  & > .list {
+    user-select: none;
+    cursor: pointer;
+    transition: all 0.3s;
+    box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.2);
+    &:hover {
+      transform: scale(1.04);
+    }
+    width: 136px;
+    height: 44px;
+    border-radius: 6px;
+    display: flex;
+    align-items: center;
+    flex-shrink: 0;
+    margin-right: 10px;
+    margin-bottom: 10px;
+    & > img {
+      margin-left: 2px;
+      width: 40px;
+      height: 40px;
+    }
+    & > .right {
+      flex: 1;
+      padding-left: 4px;
+      & > h4 {
+        color: #000;
+        margin: 0;
+        font-size: 12px;
+      }
+      & > p {
+        font-size: 12px;
+        color: red;
+        margin: 0;
+      }
+    }
+  }
+}
+</style>

+ 147 - 0
src/views/financed/subscription/dislog.vue

@@ -0,0 +1,147 @@
+<template>
+  <div>
+    <BaseDialog
+      width="400px"
+      :isShow.sync="isShow"
+      title="添加"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="收款账户:" prop="value1">
+          <el-select v-model="formData.value1" clearable placeholder="请选择">
+            <el-option
+              v-for="item in 3"
+              :key="item"
+              :label="item"
+              :value="item"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="到账金额:" prop="openingName"
+          ><el-input
+            clearable
+            v-model="formData.openingName"
+            placeholder="输入到账金额"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="到账时间:" prop="value2"
+          ><el-date-picker
+            v-model="formData.value2"
+            type="datetime"
+            placeholder="选择日期时间"
+            value-format="timestamp"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="付款账户:" prop="proceedsAccount"
+          ><el-input
+            clearable
+            v-model="formData.proceedsAccount"
+            placeholder="输入付款账户"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="付款银行:" prop="proceedsAccount"
+          ><el-input
+            clearable
+            v-model="formData.proceedsAccount"
+            placeholder="输入付款银行"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="付款账户:" prop="proceedsAccount"
+          ><el-input
+            clearable
+            v-model="formData.proceedsAccount"
+            placeholder="输入付款账户"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="下单企业:" prop="proceedsAccount"
+          ><el-input
+            clearable
+            v-model="formData.proceedsAccount"
+            placeholder="输入下单企业"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {
+      formData: {},
+      rules: {
+        tenantName: [
+          { required: true, message: "请输入机构名称", trigger: "blur" },
+        ],
+        openingName: [
+          { required: true, message: "请输入开户名", trigger: "blur" },
+        ],
+        openingBank: [
+          { required: true, message: "请输入开户行", trigger: "blur" },
+        ],
+        proceedsAccount: [
+          { required: true, message: "请输入账号", trigger: "blur" },
+        ],
+      },
+      days: [],
+    };
+  },
+  methods: {
+    init() {},
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.isShow = false;
+          this.$emit("search");
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 310 - 0
src/views/financed/subscription/index.vue

@@ -0,0 +1,310 @@
+<template>
+  <div id="subscription">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <picture-list
+      ref="pictureList"
+      :info="statisticsData"
+      :list="showTabList"
+    ></picture-list>
+    <table-list
+      rowKey="orderId"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+      @addClick="addFunc"
+    >
+      <template slot="customize">
+        <el-button type="primary" >批量导入</el-button>
+        <el-button type="primary" @click="exportData"
+          >批量导出</el-button
+        >
+        <el-button >导入模板</el-button>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text">删除</el-button>
+        <el-button type="text">认款</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog :dialogVisible.sync="dialogVisible" @search="search" />
+  </div>
+</template>
+
+<script>
+import pictureList from "@/components/Comon/pictureList.vue";
+import { exportFn } from "@/utils/index.js";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+import dislog from "./dislog.vue";
+export default {
+  name: "Subscription",
+  components: {
+    pictureList,
+    searchBoxNew,
+    tableList,
+    pagination,
+    dislog,
+  },
+  data() {
+    return {
+      statisticsData: {},
+      showTabList: [
+        {
+          label: "到账金额",
+          prop: "orderProfitTotal",
+          img: "盈亏",
+        },
+        {
+          label: "已认款",
+          prop: "orderProfitTotal",
+          img: "合同金额",
+        },
+        {
+          label: "待认款",
+          prop: "orderProfitTotal",
+          img: "已收款",
+        },
+      ],
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "认款管理",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: false,
+        addHide: false,
+        openCheckMore: true,
+        changeWidth: "120px",
+        custom: false,
+        backFatherBtn: {
+          status: false,
+          title: "配置下单填选模板",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "businessFullName",
+          placeholder: "业务归属",
+          scope: "select",
+          options: [
+            { label: "学校", value: 1 },
+            { label: "咨询", value: 2 },
+          ],
+        },
+        {
+          prop: "businessFullName",
+          placeholder: "收款账户",
+          scope: "select",
+          options: [
+            { label: "公户", value: 1 },
+            { label: "非公户", value: 2 },
+          ],
+        },
+        {
+          prop: "businessFullName",
+          placeholder: "认款类型",
+          scope: "select",
+          options: [
+            { label: "自动", value: 1 },
+            { label: "手动", value: 2 },
+          ],
+        },
+        {
+          prop: "businessFullName",
+          placeholder: "认款状态",
+          scope: "select",
+          options: [
+            { label: "待认款", value: 1 },
+            { label: "已认款", value: 2 },
+            { label: "已撤销", value: 3 },
+          ],
+        },
+        {
+          placeholder: "时间",
+          prop1: "startTime",
+          prop2: "endTime",
+          placeholder1: "订单开始日期",
+          placeholder2: "订单结束日期",
+          scope: "moreDataPicker",
+          Diszing: true,
+        },
+        {
+          prop: "keyword",
+          placeholder: "输入订单号",
+        },
+        {
+          prop: "userCard",
+          placeholder: "输入下单企业",
+        },
+      ],
+      formData: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      // 表单
+      tableSet: [
+        {
+          label: "收款账户类型",
+          prop: "businessNames",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            { label: "已完单", value: 1 },
+            { label: "未完单", value: 0 },
+          ],
+        },
+        {
+          label: "收款账户信息",
+          prop: "posterTempName",
+          hidden: true,
+        },
+        {
+          label: "到账金额",
+          prop: "posterTempName",
+          hidden: true,
+        },
+        {
+          label: "付款账户信息",
+          prop: "posterTempName",
+          hidden: true,
+        },
+        {
+          label: "到账时间",
+          prop: "posterTempName",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "下单企业",
+          prop: "posterTempName",
+          hidden: true,
+        },
+        {
+          label: "认款类型",
+          prop: "finishStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            { label: "已完单", value: 1 },
+            { label: "未完单", value: 0 },
+          ],
+        },
+        {
+          label: "认款状态",
+          prop: "checkStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            {
+              label: "待审核",
+              value: 0,
+            },
+            {
+              label: "已通过",
+              value: 1,
+            },
+          ],
+        },
+        {
+          label: "业务归属",
+          prop: "studentCheckStatus",
+          scope: "isOptions",
+          hidden: true,
+          options: [
+            {
+              label: "待审核",
+              value: 0,
+            },
+            {
+              label: "已审核",
+              value: 1,
+            },
+          ],
+        },
+        {
+          label: "关联订单",
+          prop: "startTime",
+          hidden: true,
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      dialogVisible: false,
+    };
+  },
+  created() {
+    this.search();
+    this.getStatistics(this.formData);
+  },
+  methods: {
+    exportData() {
+      var data = JSON.parse(JSON.stringify(this.formData));
+      if (data.roleId === 0 || data.roleId === 1) {
+        data.refundStatusList = "0,3,4";
+      }
+      if (data.roleId === 2) {
+        data.refundStatusList = "2,3";
+      }
+      this.$api.systemtoporderexport(data).then((res) => {
+        if (res.msg) {
+          exportFn(res.msg, `导出数据`);
+        } else {
+          this.$message.error("导出失败");
+        }
+      });
+    },
+    addFunc() {
+      this.dialogVisible = true;
+    },
+    getStatistics(datas) {
+      var data = JSON.parse(JSON.stringify(datas));
+      delete data.pageNum;
+      delete data.pageSize;
+      this.$api.systemtoporderstatistics(data).then((res) => {
+        this.statisticsData = res.data || {};
+      });
+    },
+    search(v) {
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      this.getStatistics(data);
+      this.$api
+        .systemtoporderlist(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 161 - 0
src/views/systemManagement/collectionAccount/dislog.vue

@@ -0,0 +1,161 @@
+<template>
+  <div>
+    <BaseDialog
+      width="400px"
+      :isShow.sync="isShow"
+      :title="activeData.tenantId ? '修改' : '新增'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="标题:" prop="tenantName">
+          <el-input
+            clearable
+            v-model="formData.tenantName"
+            placeholder="输入标题"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="业务归属:" prop="openingName"
+          ><el-input
+            clearable
+            v-model="formData.openingName"
+            placeholder="选择业务归属"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="账户类型:" prop="openingName"
+          ><el-input
+            clearable
+            v-model="formData.openingName"
+            placeholder="选择账户类型"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="开户名:" prop="openingName"
+          ><el-input
+            clearable
+            v-model="formData.openingName"
+            placeholder="输入开户名"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="开户行:" prop="openingBank"
+          ><el-input
+            clearable
+            v-model="formData.openingBank"
+            placeholder="输入开户行"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="银行账号:" prop="proceedsAccount"
+          ><el-input
+            clearable
+            v-model="formData.proceedsAccount"
+            placeholder="输入银行账号"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {
+        tenantName: "",
+        openingName: "",
+        openingBank: "",
+        proceedsAccount: "",
+      },
+      rules: {
+        tenantName: [
+          { required: true, message: "请输入机构名称", trigger: "blur" },
+        ],
+        openingName: [
+          { required: true, message: "请输入开户名", trigger: "blur" },
+        ],
+        openingBank: [
+          { required: true, message: "请输入开户行", trigger: "blur" },
+        ],
+        proceedsAccount: [
+          { required: true, message: "请输入账号", trigger: "blur" },
+        ],
+      },
+      days: [],
+    };
+  },
+  methods: {
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+      if (!this.formData.tenantId) {
+        this.formData = {
+          tenantName: "",
+          openingName: "",
+          openingBank: "",
+          proceedsAccount: "",
+        };
+      }
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api[
+            this.activeData.tenantId ? "systemtenantedittop" : "systemtenantadd"
+          ](this.formData).then((res) => {
+            this.$message.success("成功");
+            this.$store.commit("TENANTLIST");
+            this.isShow = false;
+            this.$emit("search");
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 199 - 0
src/views/systemManagement/collectionAccount/index.vue

@@ -0,0 +1,199 @@
+<template>
+  <div id="collectionAccount">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      rowKey="tenantId"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+      @addClick="addClick"
+    >
+      <template slot="customize">
+        <el-button type="warning" @click="remove"> 批量删除 </el-button>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="addClick(props.scope.row)"
+          >修改</el-button
+        ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></dislog>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "CollectionAccount",
+  components: { searchBoxNew, tableList, pagination, dislog },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "收款账户",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: false,
+        custom: false,
+        openCheckMore: true,
+      },
+      formList: [
+        {
+          prop: "tenantid",
+          placeholder: "请选择供应商名称",
+          scope: "systemtenantlist",
+        },
+      ],
+      formData: {},
+      tableSet: [
+        {
+          label: "标题",
+          prop: "tenantName",
+          hidden: true,
+        },
+        {
+          label: "业务归属",
+          prop: "accountList",
+          hidden: true,
+        },
+        {
+          label: "账户类型",
+          prop: "tenantName",
+          hidden: true,
+        },
+        {
+          label: "开户名",
+          prop: "tenantName",
+          hidden: true,
+        },
+        {
+          label: "开户行",
+          prop: "tenantName",
+          hidden: true,
+        },
+        {
+          label: "银行账户",
+          prop: "tenantName",
+          hidden: true,
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      activeData: {},
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    addClick(data) {
+      this.activeData = data || {};
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      if (v === 3) {
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      this.$api
+        .systemtenantlist(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$confirm("确定删除此内容?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .systemtenantdeletetop({ tenantIds: [v.tenantId] })
+            .then((res) => {
+              this.$message.success("删除成功");
+              this.$store.commit("TENANTLIST");
+              this.search(3);
+            });
+        })
+        .catch(() => {});
+    },
+    excelPort() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.warning("请勾选数据");
+        return;
+      }
+    },
+    remove() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.warning("请勾选数据");
+        return;
+      }
+      this.$confirm("确定批量删除选中的数据吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .systemtenantdeletetop({
+              tenantIds: this.$refs.tableList.allCheckData.map(
+                (i) => i.tenantId
+              ),
+            })
+            .then(() => {
+              this.$message.success("批量删除成功");
+              this.$store.commit("TENANTLIST");
+              this.search(3);
+            });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 110 - 0
src/views/systemManagement/costCategory/dislog.vue

@@ -0,0 +1,110 @@
+<template>
+  <div>
+    <BaseDialog
+      width="400px"
+      :isShow.sync="isShow"
+      :title="activeData.categoryId ? '修改' : '新增'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="成本类别:" prop="categoryName">
+          <el-input
+            clearable
+            v-model="formData.categoryName"
+            placeholder="输入成本类别名称"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {
+        categoryName: "",
+      },
+      rules: {
+        categoryName: [
+          { required: true, message: "请输入成本类别名称", trigger: "blur" },
+        ],
+      },
+      days: [],
+    };
+  },
+  methods: {
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+      if (!this.formData.categoryId) {
+        this.formData = {
+          categoryName: "",
+        };
+      }
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api[
+            this.activeData.categoryId ? "edittopcategory" : "addtopcategory"
+          ](this.formData).then((res) => {
+            this.$message.success("操作成功");
+            this.isShow = false;
+            this.$emit("search");
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 157 - 0
src/views/systemManagement/costCategory/index.vue

@@ -0,0 +1,157 @@
+<template>
+  <div id="costCategory">
+    <table-list
+      rowKey="categoryId"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+      @addClick="addClick"
+    >
+      <template slot="customize">
+        <el-button type="warning" @click="remove"> 批量删除 </el-button>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="addClick(props.scope.row)"
+          >修改</el-button
+        ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></dislog>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "CostCategory",
+  components: { tableList, pagination, dislog },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "成本类别",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: false,
+        custom: false,
+        openCheckMore: true,
+      },
+      formData: { pageSize: 10, pageNum: 1 },
+      tableSet: [
+        {
+          label: "成本类别",
+          prop: "categoryName",
+          hidden: true,
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      activeData: {},
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    addClick(data) {
+      this.activeData = data || {};
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      if (v === 3) {
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      this.$api
+        .topcategoryList(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$confirm("确定删除此内容?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .edittopcategorydeleteBatch({ categoryIds: [v.categoryId] })
+            .then((res) => {
+              this.$message.success("删除成功");
+              this.search(3);
+            });
+        })
+        .catch(() => {});
+    },
+    excelPort() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.warning("请勾选数据");
+        return;
+      }
+    },
+    remove() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.warning("请勾选数据");
+        return;
+      }
+      this.$confirm("确定批量删除选中的数据吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .edittopcategorydeleteBatch({
+              categoryIds: this.$refs.tableList.allCheckData.map(
+                (i) => i.categoryId
+              ),
+            })
+            .then(() => {
+              this.$message.success("批量删除成功");
+              this.search(3);
+            });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 113 - 0
src/views/systemManagement/costClassification/dislog.vue

@@ -0,0 +1,113 @@
+<template>
+  <div>
+    <BaseDialog
+      width="400px"
+      :isShow.sync="isShow"
+      :title="activeData.costCatId ? '修改' : '新增'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="成本分类:" prop="categoryName">
+          <el-input
+            clearable
+            v-model="formData.categoryName"
+            placeholder="输入成本分类名称"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {
+        categoryName: "",
+      },
+      rules: {
+        categoryName: [
+          { required: true, message: "请输入成本分类名称", trigger: "blur" },
+        ],
+      },
+      days: [],
+    };
+  },
+  methods: {
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+      if (!this.formData.costCatId) {
+        this.formData = {
+          categoryName: "",
+        };
+      }
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api[
+            this.activeData.costCatId
+              ? "edittopinstcategory"
+              : "addtopinstcategory"
+          ](this.formData).then((res) => {
+            this.$message.success("成功");
+              this.$store.commit("COSTCAT");
+            this.isShow = false;
+            this.$emit("search");
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 159 - 0
src/views/systemManagement/costClassification/index.vue

@@ -0,0 +1,159 @@
+<template>
+  <div id="costClassification">
+    <table-list
+      rowKey="costCatId"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+      @addClick="addClick"
+    >
+      <template slot="customize">
+        <el-button type="warning" @click="remove"> 批量删除 </el-button>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="addClick(props.scope.row)"
+          >修改</el-button
+        ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></dislog>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "CostClassification",
+  components: { tableList, pagination, dislog },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "成本分类",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: false,
+        custom: false,
+        openCheckMore: true,
+      },
+      formData: { pageSize: 10, pageNum: 1 },
+      tableSet: [
+        {
+          label: "成本分类",
+          prop: "categoryName",
+          hidden: true,
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      activeData: {},
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    addClick(data) {
+      this.activeData = data || {};
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      if (v === 3) {
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      this.$api
+        .topinstcategoryList(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$confirm("确定删除此内容?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .edittopinstcategorydeleteBatch({ costCatIds: [v.costCatId] })
+            .then((res) => {
+              this.$message.success("删除成功");
+              this.$store.commit("COSTCAT");
+              this.search(3);
+            });
+        })
+        .catch(() => {});
+    },
+    excelPort() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.warning("请勾选数据");
+        return;
+      }
+    },
+    remove() {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.warning("请勾选数据");
+        return;
+      }
+      this.$confirm("确定批量删除选中的数据吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .edittopinstcategorydeleteBatch({
+              costCatIds: this.$refs.tableList.allCheckData.map(
+                (i) => i.costCatId
+              ),
+            })
+            .then(() => {
+              this.$message.success("批量删除成功");
+              this.$store.commit("COSTCAT");
+              this.search(3);
+            });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 37 - 196
src/views/systemManagement/functional/dislog.vue

@@ -1,9 +1,9 @@
 <template>
   <div>
     <BaseDialog
-      width="800px"
+      width="400px"
       :isShow.sync="isShow"
-      :title="activeData.tenantId ? '修改' : '新增'"
+      :title="activeData.instId ? '修改' : '新增'"
       @submit="submitForm"
       @close="close"
     >
@@ -14,146 +14,34 @@
         label-width="100px"
         class="demo-ruleForm"
       >
-        <el-form-item label="机构名称:" prop="tenantName">
+        <el-form-item label="供应商:" prop="instName">
           <el-input
             clearable
-            v-model="formData.tenantName"
-            placeholder="输入机构名称"
-          ></el-input> </el-form-item
-        ><el-form-item label="h5域名:" prop="hostH5"
+            v-model="formData.instName"
+            placeholder="输入职能部门全称"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="收款账号:" prop="bankName"
           ><el-input
             clearable
-            v-model="formData.hostH5"
-            placeholder="输入h5域名"
-          ></el-input></el-form-item
-        ><el-form-item label="PC域名:" prop="hostPc"
+            v-model="formData.bankName"
+            placeholder="输入开户名"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="" prop="bank"
           ><el-input
             clearable
-            v-model="formData.hostPc"
-            placeholder="输入PC域名"
-          ></el-input
-        ></el-form-item>
-        <el-form-item label="账期设置:" required>
-          <el-col :span="9">
-            <el-form-item label="" prop="billType">
-              <el-select
-                v-model="formData.billType"
-                placeholder="选择账期类型"
-                clearable
-              >
-                <el-option label="月度" :value="1"> </el-option
-                ><el-option label="季度" :value="2"> </el-option
-                ><el-option label="半年" :value="3"> </el-option>
-                <el-option label="年度" :value="4"> </el-option>
-              </el-select> </el-form-item
-          ></el-col>
-          <el-col :span="9"
-            ><el-form-item label="" prop="billDay">
-              <el-select
-                v-model="formData.billDay"
-                placeholder="选择次月"
-                clearable
-              >
-                <el-option
-                  v-for="(item, index) in days"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select> </el-form-item
-          ></el-col>
-        </el-form-item>
-        <el-form-item label="收款账号:" required>
-          <el-col :span="9">
-            <el-form-item
-              label=""
-              :prop="'accountList.' + 0 + '.openingName'"
-              :rules="rules['openingName']"
-            >
-              <el-input
-                clearable
-                v-model="formData.accountList[0].openingName"
-                placeholder="输入开户名"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="9">
-            <el-form-item
-              label=""
-              :prop="'accountList.' + 0 + '.openingBank'"
-              :rules="rules['openingBank']"
-            >
-              <el-input
-                clearable
-                v-model="formData.accountList[0].openingBank"
-                placeholder="输入开户行"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="9">
-            <el-form-item
-              label=""
-              :prop="'accountList.' + 0 + '.proceedsAccount'"
-              :rules="rules['proceedsAccount']"
-            >
-              <el-input
-                style="margin-top: 20px"
-                clearable
-                v-model="formData.accountList[0].proceedsAccount"
-                placeholder="输入账号"
-              ></el-input>
-            </el-form-item>
-          </el-col>
+            v-model="formData.bank"
+            placeholder="输入开户行"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="开票信息:" required>
-          <el-col :span="9">
-            <el-form-item
-              label=""
-              :prop="'invoiceBo.' + 'invoiceType'"
-              :rules="rules['invoiceType']"
-            >
-              <el-select
-                v-model="formData.invoiceBo.invoiceType"
-                placeholder="选择发票类型"
-                clearable
-              >
-                <el-option label="普票" :value="1"> </el-option
-                ><el-option label="专票" :value="2"> </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="9">
-            <el-form-item
-              label=""
-              :prop="'invoiceBo.' + 'invoice'"
-              :rules="rules['invoice']"
-              ><el-input
-                clearable
-                v-model="formData.invoiceBo.invoice"
-                placeholder="输入发票抬头(企业或个人)"
-              ></el-input> </el-form-item
-          ></el-col>
-          <el-col :span="9">
-            <el-form-item
-              label=""
-              :prop="'invoiceBo.' + 'taxpayer'"
-              :rules="rules['taxpayer']"
-            >
-              <el-input
-                style="margin-top: 20px"
-                clearable
-                v-model="formData.invoiceBo.taxpayer"
-                placeholder="输入纳税人"
-              ></el-input> </el-form-item
-          ></el-col>
-        </el-form-item>
-        <el-form-item label="教务电话:" prop="eduPhone">
-          <el-input
+        <el-form-item label="" prop="bankAccount"
+          ><el-input
             clearable
-            v-model="formData.eduPhone"
-            placeholder="输入教务电话"
-          ></el-input> </el-form-item
-        >
+            v-model="formData.bankAccount"
+            placeholder="输入账号"
+          ></el-input>
+        </el-form-item>
       </el-form>
     </BaseDialog>
   </div>
@@ -177,84 +65,37 @@ export default {
   data() {
     return {
       formData: {
-        accountList: [{}],
-        invoiceBo: {},
-        tenantName: "",
-        billType: "",
-        billDay: "",
-        openingName: "",
-        openingBank: "",
-        proceedsAccount: "",
-        invoiceType: "",
-        invoice: "",
-        taxpayer: "",
-        eduPhone:""
+        instName: "",
+        bankName: "",
+        bank: "",
+        bankAccount: "",
       },
       rules: {
-        tenantName: [
+        instName: [
           { required: true, message: "请输入机构名称", trigger: "blur" },
         ],
-        billType: [
-          { required: true, message: "请选择账期类型", trigger: "change" },
-        ],
-        billDay: [
-          { required: true, message: "请选择次月日期", trigger: "change" },
-        ],
-        openingName: [
+        bankName: [
           { required: true, message: "请输入开户名", trigger: "blur" },
         ],
-        openingBank: [
+        bank: [
           { required: true, message: "请输入开户行", trigger: "blur" },
         ],
-        proceedsAccount: [
+        bankAccount: [
           { required: true, message: "请输入账号", trigger: "blur" },
         ],
-        invoiceType: [
-          { required: true, message: "请选择发票类型", trigger: "change" },
-        ],
-        invoice: [
-          { required: true, message: "请输入发票抬头", trigger: "blur" },
-        ],
-        taxpayer: [
-          { required: true, message: "请输入纳税人", trigger: "blur" },
-        ],
-        eduPhone: [
-          { required: true, message: "请输入教务电话", trigger: "blur" },
-        ],
       },
       days: [],
     };
   },
-  mounted() {
-    this.getDays();
-  },
-
   methods: {
-    //获取天数 从第6天算起 至31日
-    getDays() {
-      for (let i = 6; i <= 31; i++) {
-        this.days.push({ label: i + "日", value: i });
-      }
-    },
     init() {
       this.formData = JSON.parse(JSON.stringify(this.activeData));
-      if (this.formData.tenantId) {
-        this.formData.accountList = this.formData.accountList || [{}];
-        this.formData.invoiceBo = this.formData.invoiceBo || {};
-      } else {
+      if (!this.formData.instId) {
         this.formData = {
-          tenantName: "",
-          eduPhone:"",
-          billType: "",
-          billDay: "",
-          openingName: "",
-          openingBank: "",
-          proceedsAccount: "",
-          invoiceType: "",
-          invoice: "",
-          taxpayer: "",
-          accountList: [{}],
-          invoiceBo: {},
+          instName: "",
+          bankName: "",
+          bank: "",
+          bankAccount: "",
         };
       }
     },
@@ -265,10 +106,10 @@ export default {
       this.$refs["formData"].validate((valid) => {
         if (valid) {
           this.$api[
-            this.activeData.tenantId ? "systemtenantedittop" : "systemtenantadd"
+            this.activeData.instId ? "edittopinstitution" : "addtopinstitution"
           ](this.formData).then((res) => {
             this.$message.success("成功");
-            this.$store.commit("TENANTLIST");
+            this.$store.commit("INSTITUTION");
             this.isShow = false;
             this.$emit("search");
           });

+ 22 - 157
src/views/systemManagement/functional/index.vue

@@ -8,7 +8,7 @@
       @init="init"
     />
     <table-list
-      rowKey="tenantId"
+      rowKey="instId"
       ref="tableList"
       :tableSets="tableSet"
       :tableData="tableData"
@@ -17,86 +17,16 @@
       @addClick="addClick"
     >
       <template slot="customize">
-        <el-button type="warning" @click="remove" v-if="false"> 批量删除 </el-button>
-        <el-button type="warning" @click="excelPort"> Excel导出 </el-button>
+        <el-button type="warning" @click="remove"> 批量删除 </el-button>
+        <el-button @click="excelPort"> Excel导出 </el-button>
       </template>
       <template slot="status" slot-scope="props">
-        <el-popover placement="right" width="650" trigger="click">
-          <el-table border :data="props.scope.row.accountList">
-            <el-table-column
-              type="index"
-              label="序号"
-              width="70"
-              align="center"
-              header-align="center"
-            >
-            </el-table-column>
-            <el-table-column
-              width="120"
-              property="openingBank"
-              label="开户银行"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              width="180"
-              property="openingName"
-              label="开户名称"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              property="proceedsAccount"
-              label="收款账号"
-              align="center"
-            ></el-table-column>
-          </el-table>
-          <el-button
-            slot="reference"
-            type="text"
-            :disabled="
-              !props.scope.row.accountList ||
-              props.scope.row.accountList.length === 0
-            "
-            >查看</el-button
-          >
-        </el-popover>
-      </template>
-      <template slot="domainName" slot-scope="props">
-        <p>移动端:{{ props.scope.row.hostH5 }}</p>
-        <p>电脑端:{{ props.scope.row.hostPc }}</p>
-      </template>
-      <template slot="accountPeriodSetting" slot-scope="props">
-        <p>
-          {{ getBillType(props.scope.row.billType) }},次月{{
-            props.scope.row.billDay || " "
-          }}日
-        </p>
-      </template>
-      <template slot="invoiceInformation" slot-scope="props">
-        <p>
-          发票类型:<span v-if="props.scope.row.invoiceBo !== null">
-            {{
-              props.scope.row.invoiceBo["invoiceType"] === 1
-                ? "普票"
-                : props.scope.row.invoiceBo["invoiceType"] === 2
-                ? "专票"
-                : ""
-            }}</span
-          >
-        </p>
-        <p>
-          发票抬头:<span v-if="props.scope.row.invoiceBo !== null">{{
-            props.scope.row.invoiceBo["invoice"]
-          }}</span>
-        </p>
-        <p>企业名称:{{ props.scope.row.tenantName }}</p>
-        <p>
-          纳税人:<span v-if="props.scope.row.invoiceBo !== null">{{
-            props.scope.row.invoiceBo["taxpayer"]
-          }}</span>
-        </p>
+        <div>开户名:{{ props.scope.row.bankName }}</div>
+        <div>开户银行:{{ props.scope.row.bank }}</div>
+        <div>收款账号:{{ props.scope.row.bankAccount }}</div>
       </template>
       <template slot="btn" slot-scope="props">
-        <el-button v-if="false" type="text" @click="addClick(props.scope.row)"
+        <el-button type="text" @click="addClick(props.scope.row)"
           >修改</el-button
         ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
       </template>
@@ -127,7 +57,7 @@ export default {
     return {
       loading: false,
       navText: {
-        title: "职能管理",
+        title: "供应商管理",
         index: 0,
         ch: "条",
         num: true,
@@ -138,67 +68,24 @@ export default {
       },
       formList: [
         {
-          prop: "tenantid",
-          placeholder: "请选择机构名称",
-          scope: "systemtenantlist",
+          prop: "instId",
+          placeholder: "请选择供应商名称",
+          scope: "topinstitutionList",
         },
       ],
       formData: {},
       tableSet: [
         {
-          label: "机构名称",
-          prop: "tenantName",
+          label: "供应商",
+          prop: "instName",
           hidden: true,
         },
         {
-          label: "网站域名",
-          prop: "address",
-          hidden: true,
-          scope: "solt",
-          soltName: "domainName",
-        },
-        {
-          label: "账期设置",
-          prop: "address",
-          hidden: true,
-          scope: "solt",
-          soltName: "accountPeriodSetting",
-        },
-        {
-          label: "教务电话",
-          prop: "eduPhone",
-          hidden: true,
-        },
-        {
-          label: "是否有商户号",
-          prop: "commercialTenant",
-          hidden: true,
-          scope: "isOptions",
-          options: [
-            {
-              label: "是",
-              value: 1,
-            },
-            {
-              label: "否",
-              value: 0,
-            },
-          ],
-        },
-        {
-          label: "银行账号信息",
-          prop: "accountList",
+          label: "收款账号",
           hidden: true,
           scope: "solt",
           soltName: "status",
         },
-        {
-          label: "发票信息",
-          prop: "address",
-          hidden: true,
-          scope: "solt",
-          soltName: "invoiceInformation",
-        },
       ],
       tableData: [],
       total: 0,
@@ -210,27 +97,6 @@ export default {
     this.search(2);
   },
   methods: {
-    getBillType(e) {
-      var a = "";
-      switch (e) {
-        case 1:
-          a = "月份";
-          break;
-        case 2:
-          a = "季度";
-          break;
-        case 3:
-          a = "半年";
-          break;
-        case 4:
-          a = "年度";
-          break;
-
-        default:
-          break;
-      }
-      return a;
-    },
     addClick(data) {
       this.activeData = data || {};
       this.dialogVisible = true;
@@ -252,7 +118,7 @@ export default {
         });
       }
       this.$api
-        .systemtenantlist(this.formData)
+        .topinstitutionList(this.formData)
         .then((res) => {
           this.tableData = res.rows;
           this.total = res.total;
@@ -273,21 +139,20 @@ export default {
       })
         .then(() => {
           this.$api
-            .systemtenantdeletetop({ tenantIds: [v.tenantId] })
+            .edittopinstitutiondeleteBatch({ instIds: [v.instId] })
             .then((res) => {
               this.$message.success("删除成功");
-              this.$store.commit("TENANTLIST");
+              this.$store.commit("INSTITUTION");
               this.search(3);
             });
         })
         .catch(() => {});
     },
-    excelPort(){
+    excelPort() {
       if (this.$refs.tableList.allCheckData.length === 0) {
         this.$message.warning("请勾选数据");
         return;
       }
-
     },
     remove() {
       if (this.$refs.tableList.allCheckData.length === 0) {
@@ -301,14 +166,14 @@ export default {
       })
         .then(() => {
           this.$api
-            .systemtenantdeletetop({
-              tenantIds: this.$refs.tableList.allCheckData.map(
-                (i) => i.tenantId
+            .edittopinstitutiondeleteBatch({
+              instIds: this.$refs.tableList.allCheckData.map(
+                (i) => i.instId
               ),
             })
             .then(() => {
               this.$message.success("批量删除成功");
-              this.$store.commit("TENANTLIST");
+              this.$store.commit("INSTITUTION");
               this.search(3);
             });
         })

+ 3 - 3
src/views/systemManagement/mechanism/index.vue

@@ -96,9 +96,9 @@
         </p>
       </template>
       <template slot="btn" slot-scope="props">
-        <el-button v-if="false" type="text" @click="addClick(props.scope.row)"
+        <el-button type="text" @click="addClick(props.scope.row)"
           >修改</el-button
-        ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
+        ><el-button v-if="false" type="text" @click="del(props.scope.row)">删除</el-button>
       </template>
     </table-list>
     <pagination
@@ -172,7 +172,7 @@ export default {
         {
           label: "是否有商户号",
           prop: "commercialTenant",
-          hidden: true,
+          hidden: false,
           scope: "isOptions",
           options: [
             {