| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489 | <template>  <div id="commodityManageMent">    <search-box-new      ref="searchBox"      :formData="formData"      :formList="formList"      @search="search"      @init="init"      :topType="topType"    />    <table-list      :tableSets="tableSet"      :tableData="tableData"      :navText="navText"      @addClick="addClick"      :loading="loading"      @editInfo="editInfo"    >      <template slot="btn" slot-scope="props">        <el-button type="text" @click="addClick(props.scope.row, 0)"          >修改</el-button        >        <el-button type="text" @click="changeStatus(props.scope.row)">{{          props.scope.row.goodsStatus === 1 ? "下架" : "上架"        }}</el-button>        <el-button type="text" @click="del(props.scope.row)">删除</el-button>      </template>    </table-list>    <pagination      :total="total"      :pageSize="formData.pageSize"      :currentPage="formData.pageNum"      @handleSizeChange="handleSizeChange"      @handleCurrentChange="handleCurrentChange"    />  </div></template><script>import searchBoxNew from "@/components/searchBoxNew";import tableList from "@/components/tableList";import pagination from "@/components/pagination";export default {  name: "CommodityManageMent",  components: { searchBoxNew, tableList, pagination },  data() {    return {      loading: false, //当前表单加载是否加载动画      navText: {        title: "商品列表",        index: 0,        ch: "条",        num: false,        border: true,        choice: true,        addHide: false,        backFatherBtn: {          status: false,          title: "未定义",        },      },      topType: true,      //搜索      formList: [        {          prop: "educationTypeId",          placeholder: "教育类型",          scope: "educationType",        },        {          prop: "businessId",          placeholder: "业务层次",          scope: "businessLevel",          edu: "educationTypeId",        },        {          prop: "schoolId",          placeholder: "院校",          scope: "schoolList",          edu: "educationTypeId",        },        {          prop: "majorId",          placeholder: "专业",          scope: "Professional",          edu: "educationTypeId",        },        {          prop: "status",          placeholder: "商品状态",          scope: "select",          noClear:false,          options: [            {              label: "全部状态",              value: "0,1",            },            {              label: "有效",              value: 1,            },            {              label: "无效",              value: 0,            },          ],        },        {          prop: "goodsStatus",          placeholder: "前台可售状态",          scope: "select",          options: [            {              label: "已上架",              value: 1,            },            {              label: "未上架",              value: 0,            },          ],        },        {          prop1: "validityStartTime",          prop2: "validityEndTime",          placeholder1: "商品有效期开始时间",          placeholder2: "商品有效期结束时间",          scope: "moreDataPicker",        },        // {        //   prop: "orderGoodsStatus",        //   placeholder: "退款状态",        //   scope: "select",        //   options: [        //     {        //       label: "已退款",        //       value: 1,        //     },        //     {        //       label: "退款中",        //       value: 2,        //     },        //     {        //       label: "拒绝退款",        //       value: 3,        //     },        //   ],        // },        {          prop: "goodsName",          placeholder: "请输入商品名称",        },      ],      formData: {        goodsType: "",        status: "0,1",        pageSize: 10,        pageNum: 1,      },      // 表单      tableSet: [        {          label: "商品名称",          prop: "goodsName",          scope: "editInfo",          hidden: true,        },        {          label: "商品编码",          prop: "code",          hidden: true,        },        {          label: "专业",          prop: "categoryName",          hidden: true,        },        {          label: "院校",          prop: "schoolName",          hidden: true,        },        {          label: "业务层次",          prop1: "projectName",          prop2: "businessName",          hidden: true,          scope: "InfoMore",        },        {          label: "教育类型",          prop: "educationName",          hidden: true,        },        {          label: "学时",          prop: "classHours",          hidden: true,        },        {          label: "商品内容视图",          hidden: true,          scope: "treeWatch",        },        {          label: "商品价格",          prop: "standPrice",          hidden: true,          scope: "leftCh",          ch: "¥",        },        {          label: "商品状态",          prop: "status",          hidden: true,          scope: "hasTime",        },        {          label: "商品有效期",          prop1: "validityStartTime",          prop2: "validityEndTime",          scope: "TimeLists",          Diszing: false,          hidden: true,        },        {          label: "学习服务期",          prop1: "studyStartTime",          prop2: "studyEndTime",          scope: "TimeLists",          Diszing: false,          hidden: true,        },        {          label: "供应方(服务)",          prop: "supplyName",          hidden: true,        },        {          label: "最后编辑时间",          prop: "updateTime",          hidden: true,          scope: "aTimeList",        },        {          label: "创建时间",          prop: "createTime",          hidden: true,          scope: "aTimeList",        },        {          label: "可售状态",          prop: "goodsStatus",          hidden: true,          scope: "status",        },      ],      tableData: [], //表单数据      total: 0, //一共多少条    };  },  mounted() {    this.search();  },  activated() {    this.search();  },  methods: {    editInfo(v) {      this.addClick(v, 0);    },    search(int) {      this.loading = true;      if (int === 1) {        this.formData.pageNum = 1;      }      if (int === 2) {        this.formData = {          goodsType: "",          status: "0,1",          pageSize: 10,          pageNum: 1,        };      }      if (int === 3) {        this.formData.pageNum = 1;      }      var data = JSON.parse(JSON.stringify(this.formData));      if (this.formData.validityStartTime) {        data.validityStartTime = data.validityStartTime / 1000;      }      if (this.formData.validityEndTime) {        data.validityEndTime = data.validityEndTime / 1000;      }      this.$api        .inquireGoods(data)        .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.$api.gradecheckGoodsChange({ goodsId: v.goodsId }).then((res) => {        if (res.data > 0) {          this.$message.error("已有学员正在学习该商品,无法删除");          return;        } else {          this.$alert(            "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",            "提示",            {              dangerouslyUseHTMLString: true,            }          )            .then(() => {              var data = {                goodsId: v.goodsId,                status: -1,              };              this.$api.editGoods(data).then((res) => {                this.$message.success("删除成功");                this.search();              });            })            .catch(() => {              this.$message({                type: "info",                message: "已取消删除",              });            });        }      });    },    addClick(v, int) {      if (v === undefined) {        this.$router.push({          path: "commodityManageMentAdd",        });      } else {        const jump = () => {          this.$router.push({          path: "commodityManageMentEdit",          query: {            id: v.goodsId,          },        });        };        const statusPage = this.$store.state.tagsView.visitedViews.some(          (item) => {            return item.name == "CommodityManageMentEdit";          }        );        if (statusPage) {          this.$store            .dispatch("tagsView/delCachedView", {              name: "CommodityManageMentEdit",            })            .then((res) => {              jump();            });        } else {          jump();        }      }    },    handleSizeChange(v) {      this.formData.pageSize = v;      this.formData.pageNum = 1;      this.search();    },    handleCurrentChange(v) {      this.formData.pageNum = v;      this.search();    },    changeStatus(item) {      var items = JSON.parse(JSON.stringify(item));      items.goodsStatus = items.goodsStatus === 1 ? 0 : 1;      this.$api.editGoods(items).then((res) => {        if (item.goodsStatus === 1) {          this.$message.success("下架成功");        } else {          this.$message.success("上架成功");        }        this.search();      });    },  },};</script><style lang="less" scoped>/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>
 |