Selaa lähdekoodia

Merge branch 'x_d_5.1' into dev

谢杰标 2 vuotta sitten
vanhempi
commit
c542fe8c2d

+ 0 - 12
src/App.vue

@@ -7,17 +7,5 @@
 <script>
 export default {
   name: "App",
-  metaInfo() {
-    return {
-      title:
-        this.$store.state.settings.dynamicTitle &&
-        this.$store.state.settings.title,
-      titleTemplate: (title) => {
-        return title
-          ? `${title} - ${process.env.VUE_APP_TITLE}`
-          : process.env.VUE_APP_TITLE;
-      },
-    };
-  },
 };
 </script>

+ 0 - 294
src/components/AccountTag/index.vue

@@ -1,294 +0,0 @@
-<template>
-  <div id="AccountTag">
-    <el-dialog
-      :visible.sync="dialogVisible"
-      width="460px"
-      :show-close="false"
-      :close-on-click-modal="false"
-    >
-      <div slot="title" class="hearders">
-        <div class="leftTitle">
-          {{
-            stice == 1
-              ? "学习完成状态标记"
-              : stice == 4
-              ? "学习账号开通状态标记"
-              : stice == 3
-              ? "移除学员"
-              : ""
-          }}
-        </div>
-        <div class="rightBoxs">
-          <img
-            src="@/assets/images/Close@2x.png"
-            alt=""
-            @click="dialogVisible = false"
-          />
-        </div>
-      </div>
-      <div>
-        <ul>
-          <li
-            v-for="(item, index) in allCheckList"
-            :key="index"
-            class="btnLists"
-          >
-            {{ item.realname }}
-            <i
-              class="el-icon-close btnIcon"
-              v-if="allCheckList.length > 1"
-              @click="clearStudent(index)"
-            ></i>
-          </li>
-          <div style="clear: both"></div>
-          <p>
-            {{
-              stice == 1
-                ? "请对以上所选学员进行学习完成状态标记:"
-                : stice == 3
-                ? "是否移除所选中的学员?"
-                : stice == 4
-                ? "请对以上所选学员进行账号开通状态标记:"
-                : ""
-            }}
-          </p>
-          <div style="text-align: center">
-            <el-radio-group v-model="finishStatusOS" v-if="stice == 1">
-              <el-radio :label="1">已学完</el-radio>
-              <el-radio :label="0">未学完</el-radio>
-            </el-radio-group>
-            <el-radio-group
-              v-model="finishStatusOS"
-              v-if="stice == 4"
-              @change="failReason = ''"
-            >
-              <el-radio :label="1">已开通</el-radio>
-              <el-radio :label="0">未开通</el-radio>
-              <el-radio :label="2">标记失败</el-radio>
-            </el-radio-group>
-          </div>
-          <div v-if="stice == 4 && finishStatusOS === 2">
-            <p>失败原因:</p>
-            <el-input type="textarea" v-model="failReason"></el-input>
-          </div>
-        </ul>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="submit">确 定</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      dialogVisible: false,
-      stice: "",
-      allCheckList: [],
-      finishStatusOS: "",
-      failReason: "",
-    };
-  },
-  methods: {
-    clearStudent(index) {
-      this.allCheckList.splice(index, 1);
-    },
-    openBox(int, array, status) {
-      this.stice = int;
-      this.allCheckList = JSON.parse(JSON.stringify(array));
-      this.finishStatusOS = "";
-      if (status) {
-        this.initData();
-      }
-      this.dialogVisible = true;
-    },
-    /**
-     * 修改回填
-     */
-    initData() {
-      if (this.stice === 1) {
-        this.finishStatusOS = this.allCheckList[0].finishStatus;
-      }
-      if (this.stice === 4) {
-        this.finishStatusOS = this.allCheckList[0].learnStatus;
-        if (this.finishStatusOS === 2) {
-          this.failReason = this.allCheckList[0].reason;
-        }
-      }
-    },
-    submit() {
-      if (!this.allCheckList.length) {
-        this.dialogVisible = false;
-        return;
-      }
-      let ars = [];
-      this.allCheckList.map((item) => {
-        ars.push(item.id);
-      });
-      let data = {
-        id: ars,
-      };
-      if (this.stice === 1 || this.stice === 4) {
-        if (this.stice === 1) {
-          if (this.finishStatusOS !== 0 && this.finishStatusOS !== 1) {
-            this.$message.warning("请进行学习完成状态标记");
-            return;
-          }
-        }
-        if (this.stice === 4) {
-          if (
-            this.finishStatusOS !== 0 &&
-            this.finishStatusOS !== 1 &&
-            this.finishStatusOS !== 2
-          ) {
-            this.$message.warning("请选择账号开通状态标记");
-            return;
-          }
-        }
-        if (this.stice === 1) {
-          data.finishStatus = this.finishStatusOS;
-        }
-        if (this.stice === 4) {
-          data.learnStatus = this.finishStatusOS;
-          if (this.finishStatusOS === 2) {
-            if (!this.failReason) {
-              this.$message.error("请填写失败原因");
-              return;
-            }
-            data.reason = this.failReason;
-          }
-        }
-      }
-      if (this.stice === 3) {
-        data.status = 0;
-      }
-      this.$api.editGradeUserGradegrade(data).then((res) => {
-        this.$message.success("成功");
-        this.$emit("successFuncBack");
-        this.dialogVisible = false;
-      });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.dis__s {
-  margin-bottom: 14px;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-.btnLists {
-  float: left;
-  border: 1px solid #333;
-  padding: 0px 10px;
-  margin-right: 10px;
-  margin-bottom: 10px;
-  border-radius: 4px;
-  height: 30px;
-  line-height: 30px;
-  .btnIcon {
-    cursor: pointer;
-    transition: all 0.2s;
-    &:hover {
-      color: blue;
-    }
-  }
-}
-/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;
-  }
-}
-/deep/.radioTables > .el-radio__label {
-  display: none;
-}
-</style>

+ 0 - 240
src/components/Study/StudentInfo.vue

@@ -1,240 +0,0 @@
-<template>
-  <div class="studyInfo">
-    <header>
-      <div class="left"><i></i><span>学员信息</span></div>
-      <div class="goods_info">
-        <span v-for="(item, i) in headList" :key="i">
-          <strong style="color: red">「{{ i + 1 }}」</strong>
-          {{ item.lebel }}
-          <span v-if="item.key != 'num' && item.key != 'time'">{{
-            userData[item.key]
-          }}</span>
-          <span v-else-if="item.key == 'num'"
-            >完成{{ userData.stuAllNum + userData.recordNum }}节的内容学习</span
-          >
-          <span v-else-if="item.key == 'time'"
-            >{{ $methodsTools.onlyForma(userData.studyStartTime, false) }} -
-            {{ $methodsTools.onlyForma(userData.studyEndTime, false) }}</span
-          >
-        </span>
-      </div>
-
-      <el-button class="btn" type="primary" size="mini" @click="packUp">{{
-        showBox ? "收起" : "展开"
-      }}</el-button>
-    </header>
-
-    <div class="info_img" v-show="showBox">
-      <ul>
-        <li>学员编码:{{ userData.studentCode }}</li>
-        <li>学员姓名:{{ userData.realName }}</li>
-        <li>学员身份证号码:{{ userData.idCard }}</li>
-        <li>绑定手机号码:{{ userData.telPhone }}</li>
-      </ul>
-      <div class="img_by">
-        <div class="photoSty1">
-          <img
-            v-if="!userData.oneInchPhotos"
-            src="@/assets/images/peopleImg.png"
-            alt=""
-          />
-          <el-image
-            v-else
-            style="width: 100%; height: 100%"
-            :src="$methodsTools.splitImgHost(userData.oneInchPhotos)"
-            :preview-src-list="[
-              $methodsTools.splitImgHost(userData.oneInchPhotos),
-            ]"
-          >
-          </el-image>
-          <div class="pos_bottom">一寸头像图</div>
-        </div>
-        <div class="photoSty2">
-          <img
-            v-if="!userData.idCardImg1"
-            src="@/assets/images/idcardF.png"
-            alt=""
-          />
-          <el-image
-            v-else
-            style="width: 100%; height: 100%"
-            :src="$methodsTools.splitImgHost(userData.idCardImg1)"
-            :preview-src-list="[
-              $methodsTools.splitImgHost(userData.idCardImg1),
-            ]"
-          >
-          </el-image>
-          <div class="pos_bottom">身份证头像照</div>
-        </div>
-        <div class="photoSty2" style="margin-right: 0px">
-          <img
-            v-if="!userData.idCardImg2"
-            src="@/assets/images/idcardZ.png"
-            alt=""
-          />
-          <el-image
-            v-else
-            style="width: 100%; height: 100%"
-            :src="$methodsTools.splitImgHost(userData.idCardImg2)"
-            :preview-src-list="[
-              $methodsTools.splitImgHost(userData.idCardImg2),
-            ]"
-          >
-          </el-image>
-          <div class="pos_bottom">身份证国徽照</div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  props: {
-    userData: {
-      type: Object,
-      default: () => {
-        return {};
-      },
-    },
-    all: {
-      type: Boolean,
-      default: true,
-    },
-  },
-  data() {
-    return {
-      showBox: true,
-    };
-  },
-  methods: {
-    packUp() {
-      this.showBox = !this.showBox;
-      this.$emit("change");
-    },
-  },
-  computed: {
-    headList() {
-      const list = [
-        { lebel: "所在班级:", key: "className" },
-        { lebel: "学时:", key: "classHours" },
-        { lebel: "", key: "num" },
-        { lebel: "学习时间:", key: "time" },
-      ];
-      if (this.all) {
-        list.unshift({ lebel: "所购商品:", key: "goodsName" });
-      }
-      return list;
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.studyInfo {
-  background: #ffffff;
-  box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
-  border-radius: 8px;
-  padding: 8px 16px;
-  overflow: hidden;
-  & > header {
-    display: flex;
-    position: relative;
-    flex-wrap: wrap;
-    // height: 48px;
-    line-height: 48px;
-    & > .left {
-      display: flex;
-      align-items: center;
-      white-space: nowrap;
-      margin-right: 40px;
-      i {
-        display: inline-block;
-        width: 2px;
-        height: 18px;
-        background: #0c5dfb;
-        margin-right: 8px;
-      }
-      span {
-        color: #666;
-        font-weight: bold;
-      }
-    }
-    & > .goods_info {
-      display: flex;
-      flex-wrap: wrap;
-      span {
-        font-size: 14px;
-        padding-left: 20px;
-        white-space: nowrap;
-      }
-    }
-    .btn {
-      position: absolute;
-      right: 0;
-      top: 10px;
-    }
-  }
-  & > .info_img {
-    display: flex;
-    height: 210px;
-    ul {
-      width: 320px;
-      li {
-        margin-bottom: 12px;
-        font-size: 14px;
-      }
-    }
-    .img_by {
-      flex: 1;
-      display: flex;
-      align-items: center;
-      .pos_bottom {
-        position: absolute;
-        z-index: 1;
-        bottom: 0px;
-        width: 100%;
-        height: 32px;
-        background-color: rgba(53, 53, 53, 0.6);
-        text-align: center;
-        color: #fff;
-        font-size: 16px;
-        line-height: 32px;
-      }
-      & > .photoSty1 {
-        width: 152px;
-        height: 208px;
-        position: relative;
-        overflow: hidden;
-        border-radius: 8px;
-        background-color: #f5f5f5;
-        margin-right: 75px;
-        & > img {
-          width: 106px;
-          height: 150px;
-          margin: 29px auto 0px;
-          display: block;
-        }
-      }
-      & > .photoSty2 {
-        width: 328px;
-        height: 208px;
-        position: relative;
-        overflow: hidden;
-        border-radius: 8px;
-        background-color: #f5f5f5;
-        margin-right: 75px;
-        & > img {
-          width: 243px;
-          height: 154px;
-          margin: 27px auto 0px;
-          display: block;
-        }
-        &:last-of-type {
-          margin-right: 0px;
-        }
-      }
-    }
-  }
-}
-</style>>

+ 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);
     },
   },

+ 0 - 194
src/components/quickLogin/index.vue

@@ -1,194 +0,0 @@
-<template>
-  <div id="quickLogin">
-    <el-dialog
-      @closed="loadingClose"
-      :visible.sync="dialogVisible"
-      width="500px"
-      :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="dialogVisible = false"
-          />
-        </div>
-      </div>
-      <div>
-        <el-form
-          label-position="right"
-          label-width="100px"
-          :model="formLabelAlign"
-          :rules="rules"
-          ref="formLabelAlign"
-        >
-          <el-form-item label="验证码:" prop="yzm">
-            <el-input v-model="formLabelAlign.yzm"
-              ><el-button
-                type="text"
-                slot="append"
-                @click="getCode"
-                :disabled="changeStatus"
-                >{{
-                  changeStatus ? `倒计时${time}秒` : "获取验证码"
-                }}</el-button
-              ></el-input
-            >
-          </el-form-item>
-          <el-form-item label="密码:" prop="password">
-            <el-input v-model="formLabelAlign.password"></el-input>
-          </el-form-item>
-        </el-form>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button
-          type="primary"
-          @click="submitForm('formLabelAlign')"
-          :loading="disabledBtn"
-          >确 定</el-button
-        >
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      loading: false,
-      size: "small",
-      dialogVisible: false,
-      disabledBtn: false,
-      list: [],
-      formLabelAlign: {},
-      time: 120,
-      setFunc: null,
-      changeStatus: false,
-      rules: {
-        yzm: [{ required: true, message: "请输入验证码", trigger: "blur" }],
-        password: [{ required: true, message: "请输入密码", trigger: "blur" }],
-      },
-    };
-  },
-  methods: {
-    /**
-     * 获取验证码
-     */
-    getCode() {
-      this.changeStatus = true;
-      this.$api
-        .gradesendCode()
-        .then((res) => {
-          this.$message.success("验证码已发送");
-          this.setFunc = setInterval(() => {
-            this.time--;
-            if (this.time <= 0) {
-              clearInterval(this.setFunc);
-              this.time = 120;
-              this.changeStatus = false;
-            }
-          }, 1000);
-        })
-        .finally(() => {
-          this.changeStatus = false;
-        });
-    },
-    loadingClose() {
-      this.$refs.formLabelAlign.resetFields();
-      this.disabledBtn = false;
-      this.list = [];
-    },
-    /**
-     * status 从有接口数据标记进来 false 班级学员进来 true
-     */
-    openBoxs(arr, goodsId, status = true) {
-      if (status) {
-        this.$api.obtainGoods(goodsId).then((res) => {
-          if (res.data.categoryName) {
-            this.list = arr.map((item) => {
-              return {
-                id: item.id,
-                realname: item.realname,
-                idCard: item.idCard,
-                telphone: item.telPhone,
-                workTypeName: res.data.categoryName,
-              };
-            });
-            this.dialogVisible = true;
-          } else {
-            this.$message.error("请前往商品列表编辑设置该商品专业");
-            return;
-          }
-        });
-      } else {
-        const CHECKNAME = arr.every((item) => {
-          return item.categoryName != null;
-        });
-        if (!CHECKNAME) {
-          this.$message.error("勾选的商品必须设置专业");
-          return;
-        }
-        const GFSTATUS = arr.every((item) => {
-          return item.learnStatus !== 1;
-        });
-        if (!GFSTATUS) {
-          this.$message.error("勾选的数据不能包含账号标记已开通的数据");
-          return;
-        }
-        this.list = arr.map((item) => {
-          return {
-            id: item.id,
-            realname: item.realname,
-            idCard: item.idCard,
-            telphone: item.telPhone,
-            workTypeName: item.categoryName,
-          };
-        });
-        this.dialogVisible = true;
-      }
-    },
-    submitForm(formName) {
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          this.submitApi();
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
-      });
-    },
-    submitApi() {
-      this.disabledBtn = true;
-      let data = {
-        studyAccountStatusQueryBos: this.list,
-        trainYear: new Date().getFullYear(),
-      };
-      data = Object.assign(data, this.formLabelAlign);
-      this.$api
-        .gradeOpenQdyAccount(data)
-        .then((res) => {
-          this.$message.success("开通成功");
-          this.$emit("backData");
-          this.dialogVisible = false;
-        })
-        .finally(() => {
-          this.disabledBtn = false;
-        });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-/deep/ .el-input-group__append {
-  background-color: #fff;
-  width: 100px;
-  text-align: center;
-  color: #409eff;
-}
-</style>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 815
src/components/tableList.vue


+ 0 - 3
src/main.js

@@ -32,8 +32,6 @@ import RightToolbar from "@/components/RightToolbar"
 import Editor from "@/components/Editor"
 // 文件上传组件
 import FileUpload from "@/components/FileUpload"
-// 图片上传组件
-import ImageUpload from "@/components/ImageUpload"
 // 字典标签组件
 import DictTag from '@/components/DictTag'
 // 头部标签组件
@@ -66,7 +64,6 @@ Vue.component('BaseDialog', BaseDialog)
 Vue.component('RightToolbar', RightToolbar)
 Vue.component('Editor', Editor)
 Vue.component('FileUpload', FileUpload)
-Vue.component('ImageUpload', ImageUpload)
 const fontRate = {
   CHAR_RATE: 1.1, // 汉字比率
   NUM_RATE: 0.65, // 数字

+ 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>

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

@@ -0,0 +1,345 @@
+<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="batchExport" 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: "配置下单填选模板",
+        },
+      },
+      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: {
+    batchExport() {
+      let len = this.$refs.tableList.allCheckData.length;
+      if (!len) {
+        return this.$message.warning("请先勾应收应付");
+      }
+      const ids = this.$refs.tableList.allCheckData.map((item) => item.id);
+    },
+    changeSearch() {
+      this.init();
+    },
+    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];
+    },
+    formList() {
+      let data = [
+        {
+          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: "机构/业务号",
+        },
+      ];
+      if (this.radio1 != 1) {
+        data.unshift({
+          prop: "status1",
+          placeholder: "角色选择",
+          scope: "select",
+          options: [
+            { label: "不限", value: 2 },
+            { label: "已结清", value: 1 },
+            { label: "未结清", value: 0 },
+          ],
+        });
+      }
+      return data;
+    },
+  },
+};
+</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>

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä