Tang hai 1 ano
pai
achega
c8820f78d8

+ 18 - 0
src/newApi/order.js

@@ -121,4 +121,22 @@ export default {
             params: data
         })
     },
+
+    
+    //寄件订单批量处理
+    ordermailhandle(data) {
+        return request({
+            url: '/order/mail/handle',
+            method: 'post',
+            data
+        })
+    },
+    //寄件订单列表
+    ordermaillist(data) {
+        return request({
+            url: '/order/mail/list',
+            method: 'get',
+            params: data
+        })
+    },
 }

+ 7 - 7
src/views/2Cport/referralManageMent/index.vue

@@ -3,15 +3,15 @@
     <div>
       <el-button
         size="mini"
-        :type="activeIndex === 1 ? 'primary' : ''"
-        @click="activeIndex = 1"
-        >小程序</el-button
+        :type="activeIndex === 2 ? 'primary' : ''"
+        @click="activeIndex = 2"
+        >电脑端</el-button
       >
       <el-button
         size="mini"
-        :type="activeIndex === 2 ? 'primary' : ''"
-        @click="activeIndex = 2"
-        >PC官网</el-button
+        :type="activeIndex === 1 ? 'primary' : ''"
+        @click="activeIndex = 1"
+        >移动端</el-button
       >
     </div>
     <tab1 v-if="activeIndex === 1" />
@@ -27,7 +27,7 @@ export default {
   components: { tab1, tab2 },
   data() {
     return {
-      activeIndex: 1,
+      activeIndex: 2,
     };
   },
   mounted(){

+ 1 - 1
src/views/Marketing/clientSetup/consultation/page1.vue

@@ -165,7 +165,7 @@
             </div> </el-form-item
         ></el-col>
         <el-col :span="8">
-          <el-form-item label="H5:" prop="h5Status">
+          <el-form-item label="移动端:" prop="h5Status">
             <el-radio-group v-model="listData.h5Status">
               <el-radio :label="1">开启</el-radio>
               <el-radio :label="0">关闭</el-radio>

+ 13 - 1
src/views/Marketing/clientSetup/pageSet/page1.vue

@@ -20,6 +20,12 @@
               style="width: 50%"
             ></el-input-number>
           </div>
+          <div v-else-if="item.scope === 'inputPath'">
+            <el-input
+              v-model="scope.row[item.prop]"
+              style="width: 50%"
+            ></el-input>
+          </div>
           <div v-else-if="item.scope === 'status'" class="disflex_sty">
             <el-switch
               :size="size"
@@ -69,6 +75,12 @@ export default {
         {
           label: "导航菜单名称",
           prop: "name",
+          scope: "inputPath",
+        },
+        {
+          label: "路由地址",
+          prop: "path",
+          scope: "inputPath",
         },
         {
           label: "状态",
@@ -115,7 +127,7 @@ export default {
       initData.configValue = JSON.stringify(initData.configValue);
       updateConfig(initData).then((res) => {
         this.$message.success("保存成功");
-        this.init()
+        this.init();
       });
     },
   },

+ 1 - 0
src/views/Marketing/clientSetup/pageSet/page3.vue

@@ -251,6 +251,7 @@
           v-model="listData.miit"
           clearable
           placeholder="输入"
+          disabled
         ></el-input>
       </el-form-item>
       <el-form-item label="其他:" prop="otherHtml">

+ 54 - 8
src/views/Marketing/clientSetup/pageSet/page4.vue

@@ -8,8 +8,7 @@
       class="demo-ruleForm"
     >
       <el-row>
-        <el-col :span="6"
-          >
+        <el-col :span="8">
           <h4>电脑端</h4>
           <h5>首页</h5>
           <el-form-item label="核心标签:" prop="tag">
@@ -68,9 +67,9 @@
             </el-radio-group>
           </el-form-item></el-col
         >
-        <el-col :span="6"
-          >
-          <h4>移动端</h4><h5>首页</h5>
+        <el-col :span="8">
+          <h4>移动端</h4>
+          <h5>首页</h5>
           <el-form-item label="立即获取:" prop="tagH5">
             <el-radio-group v-model="listData.tagH5">
               <el-radio :label="1">开启</el-radio>
@@ -125,8 +124,40 @@
               <el-radio :label="1">开启</el-radio>
               <el-radio :label="0">关闭</el-radio>
             </el-radio-group>
-          </el-form-item></el-col
-        >
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <h4>通用</h4>
+          <h5>登录</h5>
+          <el-form-item label="密码输错上限:" prop="loginLimit">
+            <el-input-number
+              v-model="listData.loginLimit"
+              :size="size"
+              :min="0"
+              :max="999"
+              :controls="false"
+              :precision="0"
+              @blur="blurLimit"
+            ></el-input-number>
+          </el-form-item>
+          <h5>推送校验</h5>
+          <el-form-item label="七大员继教:" prop="sevenPushAuth">
+            <el-radio-group v-model="listData.sevenPushAuth">
+              <el-radio :label="1">开启</el-radio>
+              <el-radio :label="0">关闭</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <h5>域名配置</h5>
+          <el-form-item label="移动端域名:" prop="hostH5">
+            <el-input v-model="listData.hostH5" disabled></el-input>
+          </el-form-item>
+          <el-form-item label="直播端域名:" prop="hostLive">
+            <el-input v-model="listData.hostLive" disabled></el-input>
+          </el-form-item>
+          <el-form-item label="电脑端域名:" prop="hostPc">
+            <el-input v-model="listData.hostPc" disabled></el-input>
+          </el-form-item>
+        </el-col>
       </el-row>
     </el-form>
     <div style="margin-top: 20px">
@@ -160,9 +191,19 @@ export default {
         courseH5: [{ required: true, message: "请选择", trigger: "change" }],
         bankH5: [{ required: true, message: "请选择", trigger: "change" }],
         teamH5: [{ required: true, message: "请选择", trigger: "change" }],
-        certificateH5: [{ required: true, message: "请选择", trigger: "change" }],
+        certificateH5: [
+          { required: true, message: "请选择", trigger: "change" },
+        ],
         problemH5: [{ required: true, message: "请选择", trigger: "change" }],
         invoiceH5: [{ required: true, message: "请选择", trigger: "change" }],
+
+        loginLimit: [{ required: true, message: "请选择", trigger: "blur" }],
+        sevenPushAuth: [
+          { required: true, message: "请选择", trigger: "change" },
+        ],
+        hostH5: [{ required: false, message: "请选择", trigger: "blur" }],
+        hostLive: [{ required: false, message: "请选择", trigger: "blur" }],
+        hostPc: [{ required: false, message: "请选择", trigger: "blur" }],
       },
     };
   },
@@ -170,6 +211,11 @@ export default {
     this.init();
   },
   methods: {
+    blurLimit(e) {
+      if (!e.target.value) {
+        this.listData.loginLimit = "0";
+      }
+    },
     init() {
       listConfig({ configKey: "client.config" }).then((res) => {
         if (res.rows.length) {

+ 8 - 0
src/views/Marketing/goods/commodityManageMent/add/index.vue

@@ -216,11 +216,19 @@ export default {
         certificateTypeId: "",
         showStatus: 1,
         externalLinkStatus: 0,
+        mailSign:0,
         firstChoiceStatus:0,
         commitPeriodStatus: 0,
         sevenYear: "",
       },
       rules: {
+        mailSign: [
+          {
+            required: true,
+            message: "请选择寄件标签",
+            trigger: "change",
+          },
+        ],
         year: [
           {
             required: false,

+ 9 - 0
src/views/Marketing/goods/commodityManageMent/add/productInformation.vue

@@ -162,6 +162,14 @@
             <el-radio :label="0">否</el-radio>
           </el-radio-group>
         </el-form-item>
+        <el-form-item v-if="listData.goodsType == 1" label="寄件标签" prop="mailSign">
+          <el-radio-group
+            v-model="listData.mailSign"
+          >
+            <el-radio :label="1">是</el-radio>
+            <el-radio :label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
         <el-form-item label="商品外链" prop="externalLink">
           <el-input
             :style="`max-width: ${inputWidth}px`"
@@ -407,6 +415,7 @@ export default {
      * 商品类型切换
      */
     changeTypes(val) {
+      this.$set(this.listData, "mailSign", 0); //寄件标签
       this.$set(this.listData, "gradeType", ""); //班级类型
       this.$set(this.listData, "sevenYear", ""); //七大员继教可选年份
       this.$set(this.listData, "examNumber", "0"); //考试次数

+ 8 - 0
src/views/Marketing/goods/commodityManageMent/edit/index.vue

@@ -246,8 +246,16 @@ export default {
         goodsType: "",
         certificateTypeId: "",
         commitPeriodStatus: 0,
+        mailSign:0,
       },
       rules: {
+        mailSign: [
+          {
+            required: true,
+            message: "请选择寄件标签",
+            trigger: "change",
+          },
+        ],
         year: [
           {
             required: false,

+ 8 - 0
src/views/Marketing/goods/commodityManageMent/edit/productInformation.vue

@@ -168,6 +168,14 @@
             <el-radio :label="0">否</el-radio>
           </el-radio-group>
         </el-form-item>
+        <el-form-item v-if="listData.goodsType == 1" label="寄件标签" prop="mailSign">
+          <el-radio-group
+            v-model="listData.mailSign"
+          >
+            <el-radio :label="1">是</el-radio>
+            <el-radio :label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
         <el-form-item label="商品外链" prop="externalLink">
           <el-input
             :style="`max-width: ${inputWidth}px`"

+ 0 - 1
src/views/Marketing/order/orderList/index.vue

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

+ 6 - 1
src/views/education/classManageMent/classList/index.vue

@@ -118,8 +118,13 @@ export default {
         },
         {
           prop: "searchKey",
-          placeholder: "请输入班级名称/商品名称/学员姓名",
+          placeholder: "请输入班级名称/商品名称",
         },
+        {
+          prop: "userName",
+          placeholder: "请输入学员姓名",
+        },
+        
       ],
       formData: {
         status: "0,1",

+ 48 - 23
src/views/finance/invoiceManage/index.vue

@@ -69,16 +69,24 @@
               : ""
           }}
         </p>
-        <p>{{props.scope.row.subject == 1?'姓名:':'企业全称:'}}{{ props.scope.row.invoiceTitle }}</p>
-        <p>{{props.scope.row.subject == 1?'身份证号:':'纳税人号:'}}{{ props.scope.row.taxRegistryNumber }}</p>
+        <p>
+          {{ props.scope.row.subject == 1 ? "姓名:" : "企业全称:"
+          }}{{ props.scope.row.invoiceTitle }}
+        </p>
+        <p>
+          {{ props.scope.row.subject == 1 ? "身份证号:" : "纳税人号:"
+          }}{{ props.scope.row.taxRegistryNumber }}
+        </p>
         <p>开票备注:{{ props.scope.row.openRemark }}</p>
       </template>
       <template slot="invoice1" slot-scope="props">
-        <p v-if="props.scope.row.invoiceMode.includes(2)">收票邮箱:{{ props.scope.row.email }}</p>
+        <p v-if="props.scope.row.invoiceMode.includes(2)">
+          收票邮箱:{{ props.scope.row.email }}
+        </p>
         <template v-if="props.scope.row.invoiceMode.includes(3)">
           <p>收票姓名:{{ props.scope.row.consignee }}</p>
-        <p>收票电话:{{ props.scope.row.collectionTelephone }}</p>
-        <p>收票地址:{{ props.scope.row.shippingAddress }}</p>
+          <p>收票电话:{{ props.scope.row.collectionTelephone }}</p>
+          <p>收票地址:{{ props.scope.row.shippingAddress }}</p>
         </template>
       </template>
       <template slot="invoice2" slot-scope="props">
@@ -87,8 +95,19 @@
         <p v-if="props.scope.row.invoiceMode.includes(3)">纸质快递</p>
       </template>
       <template slot="btn" slot-scope="props">
-        <el-button type="text" @click="examineFunc(props.scope.row)" :disabled="props.scope.row.invoiceStatus != 1">审核</el-button>
-        <el-button type="text" @click="handleFunc(props.scope.row)"  :disabled="props.scope.row.invoiceStatus != 2 && props.scope.row.invoiceStatus != 4"
+        <el-button
+          type="text"
+          @click="examineFunc(props.scope.row)"
+          :disabled="props.scope.row.invoiceStatus != 1"
+          >审核</el-button
+        >
+        <el-button
+          type="text"
+          @click="handleFunc(props.scope.row)"
+          :disabled="
+            props.scope.row.invoiceStatus != 2 &&
+            props.scope.row.invoiceStatus != 4
+          "
           >处理</el-button
         >
         <el-button
@@ -118,7 +137,7 @@
 <script>
 import dialogRemark from "./dialogRemark.vue";
 import dialogHandle from "./dialogHandle.vue";
-import dialogExamine from "./dialogExamine.vue"
+import dialogExamine from "./dialogExamine.vue";
 import pictureList from "@/components/Comon/pictureList.vue";
 import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
@@ -132,7 +151,7 @@ export default {
     pictureList,
     dialogRemark,
     dialogHandle,
-    dialogExamine
+    dialogExamine,
   },
   data() {
     return {
@@ -144,7 +163,7 @@ export default {
         num: true,
         choice: true,
         addHide: true,
-        openCheckMore:true,
+        openCheckMore: true,
         backFatherBtn: {
           status: false,
           title: "未定义",
@@ -316,26 +335,32 @@ export default {
     this.search();
   },
   methods: {
-    blushAll(){
-      if(this.$refs.tableList.allCheckData.length == 0){
-        this.$message.error("请勾选数据")
-        return
+    blushAll() {
+      if (this.$refs.tableList.allCheckData.length == 0) {
+        this.$message.error("请勾选数据");
+        return;
       }
-      if(!(this.$refs.tableList.allCheckData.every(i => i.washStatus == 1))){
-        this.$message.error("请选择待冲红数据")
-        return
+      if (!this.$refs.tableList.allCheckData.every((i) => i.washStatus == 1)) {
+        this.$message.error("请选择待冲红数据");
+        return;
       }
-      let invoiceIds = this.$refs.tableList.allCheckData.map(i => i.invoiceId)
-      this.blush(invoiceIds)
+      let invoiceIds = this.$refs.tableList.allCheckData.map(
+        (i) => i.invoiceId
+      );
+      this.blush(invoiceIds);
     },
     pictureFunc(item) {
       if (item.prop == "unApplyNum") {
-        this.formData.invoiceStatus = 1;
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+          invoiceStatus: 1,
+        };
         this.search();
       }
     },
-    examineFunc(row){
-      this.$refs.dialogExamine.openBoxs(row)
+    examineFunc(row) {
+      this.$refs.dialogExamine.openBoxs(row);
     },
     remarkFunc(row) {
       this.dialogVisible = true;
@@ -374,7 +399,7 @@ export default {
           pageSize: 10,
           pageNum: 1,
         };
-        this.$refs.tableList.clearMoreActive()
+        this.$refs.tableList.clearMoreActive();
       }
       this.$api
         .orderinvoicecompanylist(this.formData)

+ 12 - 2
src/views/finance/orderManage/index.vue

@@ -353,11 +353,21 @@ export default {
   methods: {
     pictureFunc(item) {
       if (item.prop == "unCheckOrderNum") {
-        this.formData.payStatus = 2;
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+          payStatus: 2,
+          refundStatus: "",
+        };
         this.search();
       }
       if (item.prop == "unRefundNum") {
-        this.formData.refundStatus = 0;
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+          payStatus: "",
+          refundStatus: 0,
+        };
         this.search();
       }
     },

+ 77 - 0
src/views/finance/shipmentManagement/dialogRemark.vue

@@ -0,0 +1,77 @@
+<template>
+  <div class="">
+    <BaseDialog
+      width="600px"
+      :isShow.sync="isShow"
+      title="备注"
+      @close="close"
+      @submit="submit"
+    >
+      <el-input
+        :rows="8"
+        type="textarea"
+        v-model="mailRemark"
+        placeholder="请输入备注"
+      ></el-input>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    info: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      mailRemark: "",
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    init() {
+      var obj = JSON.parse(JSON.stringify(this.info));
+      this.mailRemark = obj.mailRemark || "";
+    },
+    close() {},
+    submit() {
+      this.$api
+        .ordermailhandle({
+          orderSnList: [this.info.orderSn],
+          mailRemark: this.mailRemark,
+        })
+        .then((res) => {
+          this.$message.success("操作成功");
+          this.$parent.search();
+          this.isShow = 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>

+ 230 - 0
src/views/finance/shipmentManagement/index.vue

@@ -0,0 +1,230 @@
+<template>
+  <div id="invoiceManage">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="search(2)"
+      :remarkStatus="true"
+    />
+    <table-list
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+      ref="tableList"
+      rowKey="orderSn"
+    >
+      <template slot="customize">
+        <el-button type="primary" @click="blushAll">批量处理</el-button>
+      </template>
+      <template slot="info" slot-scope="props">
+        <p v-for="(item, index) in props.scope.row.mailDetail" :key="index">
+          {{ item }}
+        </p>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button
+          type="text"
+          @click="blush([props.scope.row.orderSn])"
+          :disabled="props.scope.row.mailStatus == 1"
+          >处理</el-button
+        >
+        <el-button type="text" @click="remarkFunc(props.scope.row)"
+          >备注</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
+      @handleSizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+    />
+    <dialogRemark :dialogVisible.sync="dialogVisible" :info="activeInfo" />
+  </div>
+</template>
+
+<script>
+import dialogRemark from "./dialogRemark.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "",
+  components: {
+    searchBoxNew,
+    tableList,
+    pagination,
+    dialogRemark,
+  },
+  data() {
+    return {
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "寄件列表",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: true,
+        openCheckMore: true,
+        backFatherBtn: {
+          status: false,
+          title: "未定义",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "mailStatus",
+          placeholder: "寄件状态",
+          scope: "select",
+          options: [
+            { label: "待处理", value: 0 },
+            { label: "已处理", value: 1 },
+          ],
+        },
+        {
+          prop: "orderSn",
+          placeholder: "输入订单号",
+        },
+      ],
+      formData: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      // 表单
+      tableSet: [
+        {
+          label: "寄件状态",
+          prop: "mailStatus",
+          hidden: true,
+          scope: "isOptions",
+          options: [
+            { label: "待处理", value: 0 },
+            { label: "已处理", value: 1 },
+          ],
+        },
+        {
+          label: "订单编号",
+          hidden: true,
+          prop: "orderSn",
+        },
+        {
+          label: "收件人",
+          hidden: true,
+          prop: "consignee",
+        },
+        {
+          label: "手机号码",
+          hidden: true,
+          prop: "consigneePhone",
+        },
+        {
+          label: "收件地址",
+          hidden: true,
+          prop: "consigneeSite",
+        },
+        {
+          label: "教材数量",
+          hidden: true,
+          prop: "mailNum",
+        },
+        {
+          label: "教材详细",
+          hidden: true,
+          scope: "slot",
+          slotName: "info",
+          dontCenter: true,
+        },
+        {
+          label: "备注",
+          hidden: true,
+          prop: "mailRemark",
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      activeInfo: {},
+      dialogVisible: false,
+    };
+  },
+  mounted() {
+    this.search();
+  },
+  methods: {
+    blushAll() {
+      if (this.$refs.tableList.allCheckData.length == 0) {
+        this.$message.error("请勾选数据");
+        return;
+      }
+      if (!this.$refs.tableList.allCheckData.every((i) => i.mailStatus == 0)) {
+        this.$message.error("请选择待处理数据");
+        return;
+      }
+      let orderSns = this.$refs.tableList.allCheckData.map((i) => i.orderSn);
+      this.blush(orderSns);
+    },
+    remarkFunc(row) {
+      this.dialogVisible = true;
+      this.activeInfo = row;
+    },
+    blush(ary) {
+      this.$confirm("确定已处理吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .ordermailhandle({
+              orderSnList: ary,
+              mailStatus: 1,
+            })
+            .then((res) => {
+              this.$message.success("操作成功");
+              this.search();
+            });
+        })
+        .catch(() => {});
+    },
+    search(int) {
+      this.loading = true;
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+        this.$refs.tableList.clearMoreActive();
+      }
+      this.$api
+        .ordermaillist(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    handleSizeChange(v) {
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
+      this.search();
+    },
+    handleCurrentChange(v) {
+      this.formData.pageNum = v;
+      this.search();
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>