谢杰标 2 лет назад
Родитель
Сommit
ede9d7eaaf

+ 0 - 245
src/components/bankInfo.vue

@@ -1,245 +0,0 @@
-<template>
-  <div id="bankInfo">
-    <el-dialog
-      :visible.sync="dialogCG"
-      width="660px"
-      :show-close="false"
-      :close-on-click-modal="false"
-    >
-      <div slot="title" class="hearders">
-        <div class="leftTitle">预览题目</div>
-        <div class="rightBoxs">
-          <img
-            src="@/assets/images/Close@2x.png"
-            alt=""
-            @click="dialogCG = false"
-          />
-        </div>
-      </div>
-      <div>
-        <el-form label-width="80px">
-          <el-form-item label="题目类型">
-            <span v-if="listData.type === 1">单选题</span>
-            <span v-if="listData.type === 2">多选题</span>
-            <span v-if="listData.type === 3">判断题</span>
-            <span v-if="listData.type === 4">案例题</span>
-            <span v-if="listData.type === 5">简答题</span>
-          </el-form-item>
-          <el-form-item label="题目标题">
-            <div v-html="listData.content"></div>
-          </el-form-item>
-          <el-form-item v-if="listData.type === 4">
-            <div v-for="(items, indexs) in listData.jsonStr" :key="indexs">
-              <div>第{{ indexs + 1 }}题</div>
-              <el-form-item label="题目类型">
-                <span v-if="items.type === 1">单选题</span>
-                <span v-if="items.type === 2">多选题</span>
-                <span v-if="items.type === 3">判断题</span>
-                <span v-if="items.type === 5">简答题</span>
-              </el-form-item>
-              <el-form-item label="题目标题">
-                <div v-html="items.content"></div>
-              </el-form-item>
-              <el-form-item label="题目选项" v-if="items.type !== 3">
-                <ul>
-                  <li
-                    v-for="(item, index) in items.optionsList"
-                    :key="index"
-                    class="dis_flex"
-                  >
-                    <span>{{ index + 1 }}:</span>
-                    <span>{{ item.content }}</span>
-                    <img
-                      v-if="item.imgUrl"
-                      style="width: 50px; height: 50px"
-                      :src="$methodsTools.splitImgHost(item.imgUrl)"
-                      alt=""
-                    />
-                  </li>
-                </ul>
-              </el-form-item>
-              <el-form-item label="正确选项">
-                <span v-if="items.type === 3">{{
-                  items.answerQuestion == 1
-                    ? "正确"
-                    : items.answerQuestion == 0
-                    ? "错误"
-                    : ""
-                }}</span>
-                <span v-else>{{ items.answerQuestion }}</span>
-              </el-form-item>
-              <el-form-item label="答案解析">
-                <div v-html="items.analysisContent"></div>
-              </el-form-item>
-            </div>
-          </el-form-item>
-          <div v-else>
-            <el-form-item label="题目选项" v-if="listData.type !== 3">
-              <ul>
-                <li
-                  v-for="(item, index) in listData.jsonStr"
-                  :key="index"
-                  class="dis_flex"
-                >
-                  <span>{{ index + 1 }}:</span>
-                  <span>{{ item.content }}</span>
-                  <img
-                    v-if="item.imgUrl"
-                    style="width: 50px; height: 50px"
-                    :src="$methodsTools.splitImgHost(item.imgUrl)"
-                    alt=""
-                  />
-                </li>
-              </ul>
-            </el-form-item>
-            <el-form-item label="正确选项">
-              <span v-if="listData.type === 3">{{
-                listData.answerQuestion == 1
-                  ? "正确"
-                  : listData.answerQuestion == 0
-                  ? "错误"
-                  : ""
-              }}</span>
-              <span v-else>{{ listData.answerQuestion }}</span>
-            </el-form-item>
-          </div>
-          <el-form-item label="答案解析">
-            <div v-html="listData.analysisContent"></div>
-          </el-form-item>
-        </el-form>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogCG = false">返回</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      dialogCG: false,
-      listData: {},
-    };
-  },
-  mounted() {
-    this.$nextTick(function () {
-      this.$on("childmethod", function (v) {
-        this.getInfos(v);
-      });
-    });
-  },
-  methods: {
-    getInfos(v) {
-      this.$api
-        .inquirebankexamquestionList({ examId: v.examId })
-        .then((res) => {
-          if (res.data.length) {
-            res.data.map((item) => {
-              item.jsonStr = JSON.parse(item.jsonStr);
-            });
-            this.listData = res.data[v.topicNum - 1];
-            this.dialogCG = true;
-          }
-        });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.dis_flex {
-  display: flex;
-  align-items: center;
-}
-/deep/.el-button {
-  border-radius: 8px;
-}
-/deep/.el-dialog {
-  border-radius: 8px;
-  .el-dialog__header {
-    padding: 0;
-    .hearders {
-      height: 40px;
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      padding: 0px 18px 0px 20px;
-      border-bottom: 1px solid #e2e2e2;
-      .leftTitle {
-        font-size: 14px;
-        font-weight: bold;
-        color: #2f4378;
-      }
-      .rightBoxs {
-        display: flex;
-        align-items: center;
-        img {
-          width: 14px;
-          height: 14px;
-          margin-left: 13px;
-          cursor: pointer;
-        }
-      }
-    }
-  }
-  .el-dialog__footer {
-    padding: 0;
-    .dialog-footer {
-      padding: 0px 40px;
-      height: 70px;
-      border-top: 1px solid #e2e2e2;
-      display: flex;
-      align-items: center;
-      justify-content: flex-end;
-    }
-  }
-}
-.imgBox {
-  width: 100%;
-  // height: 210px;
-  border: 1px solid #e2e2e2;
-  border-radius: 8px;
-  padding: 8px 8px 3px;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  .imgLabel {
-    flex: 1;
-    width: 100%;
-    border: 1px dotted #e2e2e2;
-    color: #999;
-    font-size: 14px;
-    cursor: pointer;
-    border-radius: 8px;
-    .msPhoto {
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      max-width: 100%;
-      max-height: 270px;
-      img {
-        max-width: 100%;
-        max-height: 270px;
-      }
-    }
-    .imgbbx {
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      justify-content: center;
-      width: 100%;
-      height: 100%;
-      i {
-        font-weight: bold;
-        margin: 14px 0;
-        font-size: 24px;
-      }
-    }
-  }
-  p {
-    margin: 5px 0px;
-  }
-}
-</style>

+ 7 - 0
src/components/pagination.vue

@@ -25,10 +25,17 @@ export default {
   methods: {
     //切换X条/页触发
     handleSizeChange(val) {
+      this.$emit("update:currentPage", 1);
+      this.$emit("update:pageSize", val);
+      this.$emit("search");
+
       this.$emit("handleSizeChange", val);
     },
     //跳转页触发
     handleCurrentChange(val) {
+      this.$emit("update:currentPage", val);
+      this.$emit("search");
+      
       this.$emit("handleCurrentChange", val);
     },
   },

+ 4 - 156
src/components/tableList.vue

@@ -269,10 +269,6 @@
               ? scope.row[item.prop2]
               : scope.row[item.prop1]
           }}</span>
-          <span v-else-if="item.scope === 'goodsInfos'">
-            {{ scope.row[item.prop1] + "-" + scope.row[item.prop2] + "-"
-            }}<span style="color: red">¥{{ scope.row[item.prop3] }}</span>
-          </span>
           <ul v-else-if="item.scope === 'mapTypes'" class="ulAuto">
             <template v-for="(itm, inds) in scope.row[item.prop]">
               <li :key="inds" v-if="inds === 0">
@@ -540,19 +536,6 @@
               scope.row[item.prop3]
             }}{{ scope.row[item.prop4] ? scope.row[item.prop4] : "" }}</span
           >
-          <span v-else-if="item.scope === 'statusActivity'">{{
-            Number(scope.row[item.prop]) === 0
-              ? "已删除"
-              : Number(scope.row[item.prop]) === 1
-              ? "已结束"
-              : Number(scope.row[item.prop]) === 2
-              ? "已撤回"
-              : Number(scope.row[item.prop]) === 3
-              ? "已开始"
-              : Number(scope.row[item.prop]) === 4
-              ? "未开始"
-              : "未知"
-          }}</span>
           <span v-else-if="item.scope === 'sex'">
             {{
               scope.row[item.prop] == 1
@@ -976,6 +959,9 @@
                 : ""
             }}
           </div>
+          <div v-else-if="item.scope === 'solt'">
+            <slot :name="item.soltName" :scope="scope"></slot>
+          </div>
           <div v-else>
             {{ scope.row[item.prop] }}
             {{
@@ -1122,41 +1108,6 @@
         <el-button @click="isShowBoxs = false">取 消</el-button>
       </span>
     </el-dialog>
-    <el-dialog
-      :visible.sync="isShowBoxRebuy"
-      width="600px"
-      :show-close="false"
-      :close-on-click-modal="false"
-    >
-      <div slot="title" class="hearders">
-        <div class="leftTitle">复购-学时冲突提示</div>
-        <div class="rightBoxs">
-          <img
-            src="@/assets/images/Close@2x.png"
-            alt=""
-            @click="isShowBoxRebuy = false"
-          />
-        </div>
-      </div>
-      <div style="max-height: 400px; overflow: auto">
-        <ul>
-          <li
-            v-for="(item, index) in rebuyInfos"
-            :key="index"
-            style="margin-bottom: 10px"
-          >
-            学员曾购买过此商品【<span style="color: red"
-              >{{ item.orderSn }} - {{ item.goodsName }}</span
-            >】,所在班级【{{
-              item.gradeName
-            }}】的【官方学时推送状态为:是】,如为重复申报学时请及时联系学员并关闭订单。
-          </li>
-        </ul>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="isShowBoxRebuy = false">取 消</el-button>
-      </span>
-    </el-dialog>
     <el-dialog
       :visible.sync="diaviosTKOpen"
       width="560px"
@@ -1187,65 +1138,6 @@
         <el-button @click="diaviosTKOpen = false">取 消</el-button>
       </span>
     </el-dialog>
-    <el-dialog
-      :visible.sync="goosListBoxs"
-      width="560px"
-      :show-close="false"
-      :close-on-click-modal="false"
-    >
-      <div slot="title" class="hearders">
-        <div class="leftTitle">所购商品</div>
-        <div class="rightBoxs">
-          <img
-            src="@/assets/images/Close@2x.png"
-            alt=""
-            @click="goosListBoxs = false"
-          />
-        </div>
-      </div>
-      <div>
-        <div class="zdyBoxStyle">
-          <div
-            class="zdyBtnstyle"
-            style="margin-right: 20px"
-            :class="goodsActiveIndex === 1 ? 'goodsActiveStyle' : ''"
-            @click="getGoodsAboutList(1)"
-          >
-            视频商品
-          </div>
-          <div
-            class="zdyBtnstyle"
-            style="margin-right: 20px"
-            :class="goodsActiveIndex === 2 ? 'goodsActiveStyle' : ''"
-            @click="getGoodsAboutList(2)"
-          >
-            题库商品
-          </div>
-          <div
-            class="zdyBtnstyle"
-            :class="goodsActiveIndex === 6 ? 'goodsActiveStyle' : ''"
-            @click="getGoodsAboutList(6)"
-          >
-            直播商品
-          </div>
-        </div>
-        <ul class="overBoxs" v-if="goodsList.length">
-          <li v-for="(item, index) in goodsList" :key="index" class="liSYTS">
-            <div style="margin-bottom: 10px">
-              支付时间:{{ $methodsTools.onlyForma(item.createTime) }}
-            </div>
-            <div style="margin-bottom: 10px">商品编码:{{ item.code }}</div>
-            <div>商品名称:{{ item.goodsName }}</div>
-          </li>
-        </ul>
-        <div v-else style="text-align: center; margin-top: 20px">
-          暂无相关商品
-        </div>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="goosListBoxs = false">取 消</el-button>
-      </span>
-    </el-dialog>
   </div>
 </template>
 
@@ -1268,10 +1160,6 @@ export default {
       diaviosOpen: false,
       diaviosTKOpen: false,
       dialogVisible: false,
-      goosListBoxs: false,
-      goodsActiveIndex: 1,
-      goodsList: [],
-      rebuyInfos: [],
       tableSet: this.tableSets,
       allCheckData: [], //表格多选
       checkAll: true,
@@ -1281,7 +1169,6 @@ export default {
       videoUrls: "",
       diaBox: false,
       isShowBoxs: false,
-      isShowBoxRebuy: false,
       listBoxsGET: [],
       props: {
         label(data, node) {
@@ -1384,30 +1271,6 @@ export default {
       this.allCheckData = [];
       this.$refs.pagerset.clearSelection();
     },
-    /**
-     * @param {Array} 学员数据— 学员管理-所购商品
-     */
-    openGoodsListBoxs(option, int) {
-      this.goosListBoxs = true;
-      this.copyUserInfo = option;
-      this.$api
-        .inquireOrderList({ goodsType: int, userId: option.userId })
-        .then((res) => {
-          this.goodsActiveIndex = int;
-          this.goodsList = res.rows;
-        });
-    },
-    /**
-     * 点击商品类型切换请求新数据
-     */
-    getGoodsAboutList(int) {
-      this.$api
-        .inquireOrderList({ goodsType: int, userId: this.copyUserInfo.userId })
-        .then((res) => {
-          this.goodsActiveIndex = int;
-          this.goodsList = res.rows;
-        });
-    },
     isShowBoxsFun(item) {
       this.$api.inquireuserUpdateListsy({ userId: item.userId }).then((res) => {
         this.listBoxsGET = res.rows;
@@ -1417,24 +1280,9 @@ export default {
         //   .then((result) => {});
       });
     },
-    openDialog(row){
+    openDialog(row) {
       this.$emit("openDialog", row);
     },
-    /**
-     * 查看复购信息
-     */
-    isShowRebuy(item) {
-      this.$api
-        .inquireOrderRebuyInfo({
-          orderGoodsId: item.orderGoodsId,
-          userId: item.userId,
-          goodsId: item.goodsId,
-        })
-        .then((res) => {
-          this.rebuyInfos = res.rows;
-          this.isShowBoxRebuy = true;
-        });
-    },
     sortMethods(a, b) {
       if (a.classGradeUserGoodsVoList && b.classGradeUserGoodsVoList) {
         return a.classGradeUserGoodsVoList.length >

+ 161 - 0
src/views/financed/arap/dislogTip.vue

@@ -0,0 +1,161 @@
+<template>
+  <div class="dislogTipBox">
+    <BaseDialog
+      width="620px"
+      :isShow.sync="isShow"
+      title="催款提醒"
+      @close="close"
+      @submit="submitForm"
+    >
+      <el-form
+        inline
+        hide-required-asterisk
+        :model="form"
+        :rules="rules"
+        ref="form"
+        label-width="100px"
+      >
+        <div>
+          <el-form-item label="最新提醒:">2023-12-12 12:12:12 </el-form-item>
+        </div>
+
+        <div>
+          <el-form-item prop="email" label="提醒设置:">
+            <el-select v-model="form.email" placeholder="请选择提醒类型">
+              <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-form-item prop="email1" label="" v-if="form.email == 2"
+            ><el-time-select
+              v-model="form.email1"
+              :picker-options="{
+                start: '08:30',
+                step: '00:15',
+                end: '18:30',
+              }"
+              placeholder="选择时间"
+            >
+            </el-time-select>
+          </el-form-item>
+          <el-form-item prop="email2" label="" v-if="form.email == 3">
+            <el-select v-model="form.email2" placeholder="请选择成本类型">
+              <el-option
+                v-for="week in weekList"
+                :key="week.value"
+                :label="week.label"
+                :value="week.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="email3" label="" v-if="form.email == 4"
+            ><el-date-picker
+              v-model="form.email3"
+              type="datetime"
+              placeholder="选择日期时间"
+              default-time="8:00:00"
+            >
+            </el-date-picker>
+          </el-form-item>
+        </div>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "DislogTip",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    id: {
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      form: {},
+      rules: {
+        email: [
+          { required: true, message: "请选择提现类型", trigger: "change" },
+        ],
+        email1: [{ required: true, message: "请选择时间", trigger: "change" }],
+        email2: [{ required: true, message: "请选择星期", trigger: "change" }],
+        email3: [{ required: true, message: "请选择日期", trigger: "blur" }],
+        email4: [
+          { required: true, message: "请输入百分比成本", trigger: "blur" },
+        ],
+      },
+      weekList: [
+        { label: "星期一", value: "1" },
+        { label: "星期二", value: 2 },
+        { label: "星期三", value: 3 },
+        { label: "星期四", value: 4 },
+        { label: "星期五", value: 5 },
+        { label: "星期六", value: 6 },
+        { label: "星期日", value: 7 },
+      ],
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    init() {
+      this.resetForm();
+      if (this.id) {
+      }
+    },
+    close() {
+      this.$refs["form"].resetFields();
+    },
+    submit() {},
+    resetForm() {
+      this.form = {
+        email: undefined,
+        email1: undefined,
+        email2: undefined,
+        email3: undefined,
+      };
+    },
+    submitForm() {
+      this.$refs["form"].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></style>
+<style lang="scss">
+.el-picker-panel__body-wrapper {
+  .el-date-picker__header {
+    display: none !important;
+  }
+}
+</style>

+ 326 - 0
src/views/financed/arap/index.vue

@@ -0,0 +1,326 @@
+<template>
+  <div id="ActivityList">
+    <el-radio-group
+      v-model="radio1"
+      @change="changeSearch"
+      style="margin-bottom: 10px"
+    >
+      <el-radio-button label="1">应收账款</el-radio-button>
+      <el-radio-button label="2">机构分成</el-radio-button>
+      <el-radio-button label="3">业务员提成</el-radio-button>
+    </el-radio-group>
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      :key="radio1"
+      rowKey="id"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-button @click="() => {}" type="primary"> 导出excel </el-button>
+      </template>
+      <template slot="pcost" slot-scope="props">
+        <div>税收:40%</div>
+        <div>税收:40%</div>
+      </template>
+      <template slot="fcost" slot-scope="props">
+        <div>税收:40</div>
+        <div>税收:40</div>
+      </template>
+      <template slot="status" slot-scope="props">
+        <el-checkbox
+          @change="changeStatus"
+          :checked="!!props.scope.row.status"
+        ></el-checkbox>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" :disabled="false" @click="handelClick">
+          催款提醒
+        </el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog-tip :dialogVisible.sync="dialogVisible"></dislog-tip>
+  </div>
+</template>
+
+<script>
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+import dislogTip from "./dislogTip.vue";
+export default {
+  name: "cost",
+  components: { searchBoxNew, tableList, pagination, dislogTip },
+  data() {
+    return {
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "成本模板",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: true,
+        openCheckMore: true,
+        changeWidth: "160px",
+        custom: false,
+        backFatherBtn: {
+          status: false,
+          title: "配置下单填选模板",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "status1",
+          placeholder: "账款状态",
+          scope: "select",
+          options: [
+            { label: "不限", value: 2 },
+            { label: "已结清", value: 1 },
+            { label: "未结清", value: 0 },
+          ],
+        },
+        {
+          prop1: "classStartTime",
+          prop2: "classEndTime",
+          placeholder1: "开始时间",
+          placeholder2: "结束时间",
+          scope: "moreDataPicker",
+        },
+        {
+          prop: "name",
+          placeholder: "机构/业务号",
+        },
+      ],
+      formData: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      // 表单
+      tableSet1: [
+        {
+          label: "下单时间",
+          prop: "startTime",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "订单单号",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "机构名称",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "业务员",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "业务号",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "合同金额(元)",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "已收账款(元)",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "未收账款(元)",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "预收时间",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "剩余天数",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "提醒设置",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "最新提醒",
+          prop: "posterTempName",
+          hidden: true,
+        },
+      ],
+      tableSet2: [
+        {
+          label: "下单时间",
+          prop: "startTime",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "订单单号",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "机构名称",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "待付账款(元)",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "预付时间",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "剩余天数",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "审核状态",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "备注",
+          prop: "name",
+          hidden: true,
+        },
+      ],
+      tableSet3: [
+        {
+          label: "下单时间",
+          prop: "startTime",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "订单单号",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "机构名称",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "业务员",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "业务号",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "待付账款(元)",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "预付时间",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "剩余天数",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "审核状态",
+          prop: "name",
+          hidden: true,
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      dialogVisible: false,
+      radio1: 1,
+    };
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    changeSearch() {
+      this.init();
+      console.log(this.$refs["tableList"])
+      this.$refs["tableList"].initTR();
+    },
+    handelClick() {
+      this.dialogVisible = false;
+    },
+    search(v) {
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      // if (this.formData.classStartTime) {
+      //   data.classStartTime = parseInt(data.classStartTime / 1000);
+      // }
+      // if (this.formData.classEndTime) {
+      //   data.classEndTime = parseInt(data.classEndTime / 1000);
+      // }
+      this.$api
+        .distributiontemplist(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+  },
+  computed: {
+    tableSet() {
+      return this["tableSet" + this.radio1];
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 212 - 0
src/views/financed/cost/dislogSet.vue

@@ -0,0 +1,212 @@
+<template>
+  <div>
+    <BaseDialog
+      width="1200px"
+      :isShow.sync="isShow"
+      :title="['新增', '修改', '复制'][type]"
+      @close="close"
+      @submit="submitForm"
+    >
+      <el-form
+        inline
+        hide-required-asterisk
+        :model="form"
+        :rules="rules"
+        ref="form"
+        label-width="100px"
+      >
+        <div>
+          <el-form-item prop="name" label="模板名称:">
+            <el-input
+              placeholder="请输入模板名称"
+              v-model="form.name"
+            ></el-input>
+          </el-form-item>
+        </div>
+
+        <div v-for="(item, index) in form.list" :key="index">
+          <el-form-item
+            :prop="'list.' + index + '.email'"
+            :label="index == 0 ? '成本设置:' : ' '"
+            :rules="rules['email']"
+          >
+            <el-input
+              placeholder="请输入成本项名称"
+              v-model="item.email"
+            ></el-input>
+          </el-form-item>
+          <el-form-item
+            style="margin-left: 10px"
+            label=""
+            label-width="4px"
+            :prop="'list.' + index + '.email1'"
+            :rules="rules['email1']"
+          >
+            <el-select v-model="item.email1" placeholder="请选择是否分成">
+              <el-option label="分成成本" value="1"></el-option>
+              <el-option label="非分成成本" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            style="margin-left: 10px"
+            label=""
+            label-width="4px"
+            :prop="'list.' + index + '.email2'"
+            :rules="rules['email2']"
+          >
+            <el-select v-model="item.email2" placeholder="请选择成本类型">
+              <el-option label="百分比成本" value="1"></el-option>
+              <el-option label="固定成本" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            v-if="item.email2 == 1"
+            label-width="0"
+            :prop="'list.' + index + '.email3'"
+            label=" "
+            :rules="rules['email3']"
+          >
+            <el-input placeholder="请输入固定成本" v-model="item.email3">
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            v-if="item.email2 == 2"
+            label-width="0"
+            :prop="'list.' + index + '.email4'"
+            label=" "
+            :rules="rules['email4']"
+          >
+            <el-input placeholder="请输入百分比成本" v-model="form.email4">
+              <template slot="append">%</template>
+            </el-input>
+          </el-form-item>
+          <i
+            @click="add(index)"
+            style="font-size: 24px; margin: 5px; cursor: pointer"
+            class="el-icon-circle-plus-outline"
+          ></i>
+          <i
+            v-if="index != 0"
+            @click="del(index)"
+            style="font-size: 24px; margin: 5px; cursor: pointer"
+            class="el-icon-remove-outline"
+          ></i>
+        </div>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "DislogSet",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    // 1 新增  2修改  3复制
+    type: {
+      type: [String, Number],
+      default: 0,
+    },
+    id: {
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      form: {},
+      rules: {
+        name: [
+          { required: true, message: "请输入活动名称", trigger: "blur" },
+          { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
+        ],
+        email: [
+          { required: true, message: "请输入成本项名称", trigger: "blur" },
+          { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
+        ],
+        email1: [
+          { required: true, message: "请选择是否分成", trigger: "change" },
+        ],
+        email2: [
+          { required: true, message: "请选择成本类型", trigger: "change" },
+        ],
+        email3: [
+          { required: true, message: "请输入固定成本", trigger: "blur" },
+        ],
+        email4: [
+          { required: true, message: "请输入百分比成本", trigger: "blur" },
+        ],
+      },
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    init() {
+      this.resetForm();
+      if (this.id) {
+      }
+    },
+    add(index) {
+      this.form.list.splice(index + 1, 0, {
+        email: undefined,
+        email1: undefined,
+        email2: undefined,
+        email3: undefined,
+        email4: undefined,
+      });
+    },
+    del(index) {
+      this.form.list.splice(index, 1);
+    },
+    close() {
+      this.$refs["form"].resetFields();
+    },
+    submit() {},
+    resetForm() {
+      this.form = {
+        list: [
+          {
+            email: undefined,
+            email1: undefined,
+            email2: undefined,
+            email3: undefined,
+            email4: undefined,
+          },
+        ],
+        name: undefined,
+      };
+    },
+    submitForm() {
+      this.$refs["form"].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></style>

+ 211 - 0
src/views/financed/cost/index.vue

@@ -0,0 +1,211 @@
+<template>
+  <div id="ActivityList">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      rowKey="id"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-button type="primary" @click="handelClick(0)"> 新增 </el-button>
+        <el-button @click="batchDel" type="warning"> 批量删除 </el-button>
+      </template>
+      <template slot="pcost" slot-scope="props">
+        <div>税收:40%</div>
+        <div>税收:40%</div>
+      </template>
+      <template slot="fcost" slot-scope="props">
+        <div>税收:40</div>
+        <div>税收:40</div>
+      </template>
+      <template slot="status" slot-scope="props">
+        <el-checkbox
+          @change="changeStatus"
+          :checked="!!props.scope.row.status"
+        ></el-checkbox>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="handelClick(2, props.scope.row)"
+          >复制</el-button
+        >
+        <el-button type="text" @click="handelClick(1, props.scope.row)"
+          >修改</el-button
+        >
+        <el-button type="text" @click="handelDel(props.scope.row.id)"
+          >删除</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog-set
+      :dialogVisible.sync="dialogVisible"
+      :id="id"
+      :type="type"
+      @search="search"
+    ></dislog-set>
+  </div>
+</template>
+
+<script>
+import dislogSet from "./dislogSet.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "cost",
+  components: { searchBoxNew, tableList, pagination, dislogSet },
+  data() {
+    return {
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "成本模板",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: true,
+        openCheckMore: true,
+        changeWidth: "160px",
+        custom: false,
+        backFatherBtn: {
+          status: false,
+          title: "配置下单填选模板",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "name",
+          placeholder: "请输入模板名称",
+        },
+      ],
+      formData: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      // 表单
+      tableSet: [
+        {
+          label: "模板名称",
+          prop: "name",
+          hidden: true,
+        },
+        {
+          label: "百分比成本",
+          prop: "posterTempName",
+          hidden: true,
+          scope: "solt",
+          soltName: "pcost",
+        },
+        {
+          label: "固定成本成本",
+          prop: "posterTempName1",
+          hidden: true,
+          scope: "solt",
+          soltName: "fcost",
+        },
+        {
+          label: "默认状态",
+          prop: "startTime",
+          hidden: true,
+          scope: "solt",
+          soltName: "status",
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      dialogVisible: false,
+      id: "",
+      type: 0,
+    };
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    handelClick(type, id) {
+      this.dialogVisible = true;
+      this.type = type;
+      if (type !== 0) {
+        this.id = id;
+      }
+    },
+    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 (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      // if (this.formData.classStartTime) {
+      //   data.classStartTime = parseInt(data.classStartTime / 1000);
+      // }
+      // if (this.formData.classEndTime) {
+      //   data.classEndTime = parseInt(data.classEndTime / 1000);
+      // }
+      this.$api
+        .distributiontemplist(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>