lex 1 سال پیش
والد
کامیت
96cbc0c4a3

+ 40 - 28
src/views/categroyManager/generalSettings/overallManager.vue

@@ -17,13 +17,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的天数',
-              },
+                message: '请输入正确的天数'
+              }
             ]"
           >
             缴费状态提前:
             <el-input v-model="form['10']" placeholder="请输入天数">
-              <template slot="append">天</template>
+              <template slot="append"
+                >天</template
+              >
             </el-input>
             刷新
           </el-form-item>
@@ -71,13 +73,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的分钟数',
-              },
+                message: '请输入正确的分钟数'
+              }
             ]"
           >
             乐团课结算参考总时长:
             <el-input v-model="form['23']" placeholder="请输入分钟数">
-              <template slot="append">分钟</template>
+              <template slot="append"
+                >分钟</template
+              >
             </el-input>
           </el-form-item>
         </el-row>
@@ -88,13 +92,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的分钟数',
-              },
+                message: '请输入正确的分钟数'
+              }
             ]"
           >
             乐团课结算单课时参考时长:
             <el-input v-model="form['24']" placeholder="请输入分钟数">
-              <template slot="append">分钟</template>
+              <template slot="append"
+                >分钟</template
+              >
             </el-input>
           </el-form-item>
         </el-row>
@@ -105,13 +111,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的天数',
-              },
+                message: '请输入正确的天数'
+              }
             ]"
           >
             退款周期:
             <el-input v-model="form['25']" placeholder="请输入天数">
-              <template slot="append">天</template>
+              <template slot="append"
+                >天</template
+              >
             </el-input>
           </el-form-item>
         </el-row>
@@ -281,7 +289,7 @@
               format="HH:mm"
               value-format="HH:mm"
               :picker-options="{
-                selectableRange: '00:00:00 - 23:59:59',
+                selectableRange: '00:00:00 - 23:59:59'
               }"
               placeholder="请选择时间"
             >
@@ -295,7 +303,7 @@
               format="HH:mm"
               value-format="HH:mm"
               :picker-options="{
-                selectableRange: '00:00:00 - 23:59:59',
+                selectableRange: '00:00:00 - 23:59:59'
               }"
               placeholder="请选择时间"
             >
@@ -322,13 +330,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的天数',
-              },
+                message: '请输入正确的天数'
+              }
             ]"
           >
             乐团缴费开启后
             <el-input v-model="form['74']" placeholder="请输入天数">
-              <template slot="append">天</template>
+              <template slot="append"
+                >天</template
+              >
             </el-input>
             向乐团主管发送缴费明细短信
           </el-form-item>
@@ -341,13 +351,15 @@
                 required: true,
                 message: '请输入正确的金额',
                 trigger: 'blur',
-                pattern: /^(\+)?\d+(\.\d+)?$/,
-              },
+                pattern: /^(\+)?\d+(\.\d+)?$/
+              }
             ]"
           >
-          机构云教室账户余额小于
+            机构云教室账户余额小于
             <el-input v-model="form['240']" placeholder="请输入金额">
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
             时发送短信和邮件提醒
           </el-form-item>
@@ -395,7 +407,7 @@ export default {
     return {
       configList: [],
       input: [],
-      form: {},
+      form: {}
     };
   },
   mounted() {
@@ -403,9 +415,9 @@ export default {
   },
   methods: {
     __init() {
-      sysConfigList({ group: "DEFAULT" }).then((res) => {
+      sysConfigList({ group: "DEFAULT" }).then(res => {
         if (res.code == 200 && res.data.length > 0) {
-          res.data.forEach((item) => {
+          res.data.forEach(item => {
             // this.form[item.paramName] = item.paranValue
             this.$set(this.form, item.id, item.paranValue);
           });
@@ -428,13 +440,13 @@ export default {
     //   });
     // },
     async save() {
-      this.$refs.form.validate(async (valid) => {
+      this.$refs.form.validate(async valid => {
         if (valid) {
           let param = [];
           for (let i in this.form) {
             param.push({
               id: i,
-              paranValue: this.form[i],
+              paranValue: this.form[i]
             });
           }
           try {
@@ -446,8 +458,8 @@ export default {
           }
         }
       });
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 61 - 20
src/views/categroyManager/generalSettings/overallManagerTwo.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="">
     <!-- <h2>参数设置</h2> -->
-      <!-- 列表 -->
+    <!-- 列表 -->
     <el-form :inline="true" :model="form" ref="form">
       <el-alert
         style="margin: 10px 0"
@@ -14,18 +14,38 @@
         <!-- (双乾: YQPAY 汇付: ADAPAY) -->
         <el-form-item prop="68">
           默认收款渠道:
-          <el-select v-model="form['68']"  placeholder="请选择渠道">
-            <el-option label="双乾" value="YQPAY"></el-option>
-              <el-option label="汇付" value="ADAPAY"></el-option>
+          <el-select v-model="form['68']" placeholder="请选择渠道">
+            <el-option label="汇付" value="ADAPAY"></el-option>
+            <el-option label="易宝" value="YEEPAY"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-row>
+      <el-row>
+        <!-- (双乾: YQPAY 汇付: ADAPAY) -->
+        <el-form-item
+          prop="268"
+          :rules="[
+            { required: true, message: '请选择支付方式', trigger: 'change' }
+          ]"
+        >
+          支付方式:
+          <el-select
+            v-model="form['268']"
+            placeholder="请选择渠道"
+            multiple
+            clearable
+          >
+            <el-option label="微信" value="wx"></el-option>
+            <el-option label="支付宝" value="alipay"></el-option>
           </el-select>
         </el-form-item>
       </el-row>
       <el-row>
         <el-form-item prop="69">
           是否用收费配置:
-              <el-select v-model="form['69']"  placeholder="请选择渠道">
+          <el-select v-model="form['69']" placeholder="请选择渠道">
             <el-option label="使用" value="1"></el-option>
-              <el-option label="不使用" value="0"></el-option>
+            <el-option label="不使用" value="0"></el-option>
           </el-select>
         </el-form-item>
       </el-row>
@@ -39,14 +59,16 @@
             format="yyyy-MM-dd HH:mm:ss"
             value-format="yyyy-MM-dd HH:mm:ss"
             placeholder="选择始执行时间"
-
           >
           </el-date-picker>
         </el-form-item>
       </el-row>
     </el-form>
-    <el-button  type="primary" @click="save" class="saveBtn"
-     v-permission="'sysConfig/batchUpdate/overallManagerTwo'"
+    <el-button
+      type="primary"
+      @click="save"
+      class="saveBtn"
+      v-permission="'sysConfig/batchUpdate/overallManagerTwo'"
       >保存</el-button
     >
   </div>
@@ -61,7 +83,9 @@ export default {
     return {
       configList: [],
       input: [],
-      form: {},
+      form: {
+        268: []
+      }
     };
   },
   mounted() {
@@ -69,11 +93,21 @@ export default {
   },
   methods: {
     __init() {
-      sysConfigList({ group: "DEFAULT" }).then((res) => {
+      sysConfigList({ group: "DEFAULT" }).then(res => {
         if (res.code == 200 && res.data.length > 0) {
-          res.data.forEach((item) => {
+          res.data.forEach(item => {
             // this.form[item.paramName] = item.paranValue
-            this.$set(this.form, item.id, item.paranValue);
+            if ([68, 69, 90, 268].includes(item.id)) {
+              if (item.id === 268) {
+                this.$set(
+                  this.form,
+                  item.id,
+                  item.paranValue ? JSON.parse(item.paranValue) : []
+                );
+              } else {
+                this.$set(this.form, item.id, item.paranValue);
+              }
+            }
           });
           // this.$forceUpdate()
           // console.log(this.form);
@@ -94,14 +128,21 @@ export default {
     //   });
     // },
     async save() {
-      this.$refs.form.validate(async (valid) => {
+      this.$refs.form.validate(async valid => {
         if (valid) {
           let param = [];
           for (let i in this.form) {
-            param.push({
-              id: i,
-              paranValue: this.form[i],
-            });
+            if (i == 268) {
+              param.push({
+                id: i,
+                paranValue: JSON.stringify(this.form[i])
+              });
+            } else {
+              param.push({
+                id: i,
+                paranValue: this.form[i]
+              });
+            }
           }
           try {
             const res = await sysConfigUpdate(param);
@@ -112,8 +153,8 @@ export default {
           }
         }
       });
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 6 - 5
src/views/categroyManager/globalConfig.vue

@@ -43,6 +43,7 @@
         >
           <overallManagerTwo v-if="activeIndex == 7" />
         </el-tab-pane>
+
         <!-- <el-tab-pane
             label="节假日设置"
             lazy
@@ -96,7 +97,7 @@ export default {
     // chargesList,
     // musicCourseFee,
     // courseTimerSetting
-    earlyWarning,
+    earlyWarning
   },
   name: "globalConfig",
   data() {
@@ -106,15 +107,15 @@ export default {
         overallManager: permission("/globalConfig/overallManager"),
         overallManagerTwo: permission("/globalConfig/overallManagerTwo"),
         loginRules: permission("/globalConfig/loginRules"),
-        groupMarkPrice: permission("/globalConfig/groupMarkPrice"),
-      },
+        groupMarkPrice: permission("/globalConfig/groupMarkPrice")
+      }
     };
   },
   methods: {
     handleClick(val) {
       this.activeIndex = val.name;
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 152 - 40
src/views/editionManager/editionList.vue

@@ -24,12 +24,29 @@
         :on-error="handleError"
         :on-success="handleSuccess"
       >
-        <el-button type="primary" style="margin-bottom: 20px"> 导入兑换码 </el-button>
+        <el-button type="primary" style="margin-bottom: 20px">
+          导入兑换码
+        </el-button>
       </el-upload>
 
-      <save-form :inline="true" @submit="search" :model="searchForm">
+      <save-form
+        :inline="true"
+        @submit="search"
+        @reset="onReSet"
+        :model="searchForm"
+      >
+        <el-form-item label="关键字">
+          <el-input
+            size="default"
+            placeholder="编号/版本号/描述"
+            clearable
+            v-model="searchForm.keyword"
+            style="max-width: 180px"
+          >
+          </el-input>
+        </el-form-item>
         <el-form-item label="客户端">
-          <el-select clearable v-model="searchForm.search">
+          <el-select clearable v-model="searchForm.platform">
             <el-option
               v-for="(item, index) in sectionList"
               :key="index"
@@ -38,8 +55,21 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="状态">
+          <el-select
+            v-model="searchForm.status"
+            clearable
+            filterable
+            placeholder="状态"
+          >
+            <el-option label="最新" value="newest"></el-option>
+            <el-option label="历史" value="history"></el-option>
+            <el-option label="审核中" value="auditing"></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item>
           <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button type="primary" native-type="reset">重置</el-button>
         </el-form-item>
       </save-form>
 
@@ -48,13 +78,21 @@
           :data="tableList"
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         >
-          <el-table-column align="center" prop="id" label="编号"></el-table-column>
+          <el-table-column
+            align="center"
+            prop="id"
+            label="编号"
+          ></el-table-column>
           <el-table-column align="center" prop="platform" label="客户端">
             <template slot-scope="scope">
               <div>{{ scope.row.platform | editionFilter }}</div>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="version" label="版本号"></el-table-column>
+          <el-table-column
+            align="center"
+            prop="version"
+            label="版本号"
+          ></el-table-column>
           <el-table-column align="center" prop="isForceUpdate" label="强制更新">
             <template slot-scope="scope">
               <div>{{ scope.row.isForceUpdate ? "是" : "否" }}</div>
@@ -70,9 +108,17 @@
               <overflow-text :text="scope.row.description"></overflow-text>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="downloadUrl" width="120" label="下载链接">
+          <el-table-column
+            align="center"
+            prop="downloadUrl"
+            width="120"
+            label="下载链接"
+          >
             <template slot-scope="scope">
-              <overflow-text width="120px" :text="scope.row.downloadUrl"></overflow-text>
+              <overflow-text
+                width="120px"
+                :text="scope.row.downloadUrl"
+              ></overflow-text>
             </template>
           </el-table-column>
           <el-table-column align="center" label="操作">
@@ -101,7 +147,7 @@
     <!-- v-if="sectionVisible" -->
     <el-dialog
       :title="isNew ? '版本添加' : '版本修改'"
-      width="400px"
+      width="550px"
       :visible.sync="sectionVisible"
       v-if="sectionVisible"
     >
@@ -113,11 +159,12 @@
         label-width="80px"
         v-if="sectionVisible"
       >
-        <el-form-item label="客户端" prop="platform" v-if="isNew">
+        <el-form-item label="客户端" prop="platform">
           <el-select
             v-model="sectionForm.platform"
             style="width: 100% !important"
             clearable
+            :disabled="!isNew"
           >
             <el-option
               v-for="(item, index) in sectionList"
@@ -127,8 +174,9 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="版本号" prop="version" v-if="isNew">
+        <el-form-item label="版本号" prop="version">
           <el-input
+            :disabled="!isNew"
             v-model.trim="sectionForm.version"
             @mousewheel.native.prevent
           ></el-input>
@@ -153,17 +201,57 @@
             <el-option label="历史" value="history"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="下载链接" prop="downloadUrl">
-          <el-input v-model.trim="sectionForm.downloadUrl" type="textarea"></el-input>
+        <el-form-item
+          label="上传文件"
+          prop="downloadUrl"
+          :rules="[{ required: false }]"
+          v-if="
+            [
+              'android-teacher',
+              'android-student',
+              'android-education'
+            ].includes(sectionForm.platform)
+          "
+        >
+          <!-- 'ios-electron',
+              'win-electron' -->
+          <singe-file-upload
+            tips="仅支持上传 APK, DMG, EXE"
+            accept=".apk,.dmg,.exe"
+            v-model="sectionForm.downloadUrl"
+          />
+        </el-form-item>
+        <el-form-item
+          label="下载链接"
+          prop="downloadUrl"
+          v-if="
+            [
+              'android-teacher',
+              'android-student',
+              'android-education'
+            ].includes(sectionForm.platform)
+          "
+        >
+          <el-input
+            v-model.trim="sectionForm.downloadUrl"
+            type="textarea"
+          ></el-input>
         </el-form-item>
         <el-form-item label="描述" prop="description">
-          <el-input type="textarea" v-model="sectionForm.description"></el-input>
+          <el-input
+            type="textarea"
+            v-model="sectionForm.description"
+          ></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="sectionVisible = false">取 消</el-button>
-        <el-button v-if="isNew" type="primary" @click="createEdition">确 定</el-button>
-        <el-button v-if="!isNew" type="primary" @click="resetEdition">确 定</el-button>
+        <el-button v-if="isNew" type="primary" @click="createEdition"
+          >确 定</el-button
+        >
+        <el-button v-if="!isNew" type="primary" @click="resetEdition"
+          >确 定</el-button
+        >
       </div>
     </el-dialog>
   </div>
@@ -172,15 +260,17 @@
 import {
   appVersionInfo,
   addAppVersionInfo,
-  resetAppVersionInfo,
+  resetAppVersionInfo
 } from "@/api/systemManage";
 import pagination from "@/components/Pagination/index";
 import { getToken, getTenantId } from "@/utils/auth";
 import { decode } from "js-base64";
 import load from "@/utils/loading";
+import Upload from "@/components/Upload/index";
 export default {
   components: {
     pagination,
+    Upload
   },
   data() {
     return {
@@ -191,10 +281,12 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       searchForm: {
-        search: null,
+        keyword: null,
+        platform: null,
+        status: null
       },
       sectionList: [
         { value: "ios-teacher", label: "苹果-老师端" },
@@ -204,7 +296,7 @@ export default {
         { value: "android-student", label: "安卓-学生端" },
         { value: "android-education", label: "安卓-管理端" },
         { value: "ios-electron", label: "苹果-桌面端" },
-        { value: "win-electron", label: "win-桌面端" },
+        { value: "win-electron", label: "win-桌面端" }
       ],
       sectionForm: {
         platform: "",
@@ -212,19 +304,28 @@ export default {
         isForceUpdate: "",
         downloadUrl: "",
         status: "",
-        id: "",
+        id: ""
       },
       sectionRules: {
-        platform: [{ required: true, message: "请选择客户端", trigger: "blur" }],
+        platform: [
+          { required: true, message: "请选择客户端", trigger: "blur" }
+        ],
         version: [{ required: true, message: "请输入版本号", trigger: "blur" }],
-        isForceUpdate: [{ required: true, message: "请选择是否强更", trigger: "blur" }],
-        status: [{ required: true, message: "请选择版本状态", trigger: "blur" }],
+        isForceUpdate: [
+          { required: true, message: "请选择是否强更", trigger: "blur" }
+        ],
+        status: [
+          { required: true, message: "请选择版本状态", trigger: "blur" }
+        ],
+        downloadUrl: [
+          { required: true, message: "请输入下载链接", trigger: "blur" }
+        ]
       },
       isNew: false,
       headers: {
         Authorization: getToken(),
-        tenantId: getTenantId(),
-      },
+        tenantId: getTenantId()
+      }
     };
   },
   activated() {
@@ -238,20 +339,31 @@ export default {
       this.rules.page = 1;
       this.getList();
     },
+    onReSet() {
+      // 重置搜索
+      this.searchForm = {
+        platform: "",
+        version: "",
+        isForceUpdate: "",
+        downloadUrl: "",
+        status: "",
+        id: ""
+      };
+      this.getList();
+    },
     init() {
       this.getList();
     },
     getList() {
-      this.searchForm.search ? this.searchForm.search : (this.searchForm.search = null);
       appVersionInfo({
-        search: this.searchForm.search,
+        ...this.searchForm,
         page: this.rules.page,
-        rows: this.rules.limit,
-      }).then((res) => {
+        rows: this.rules.limit
+      }).then(res => {
         if (res.code == 200) {
-          this.tableList = res.data.rows.map((item) => ({
+          this.tableList = res.data.rows.map(item => ({
             ...item,
-            downloadUrl: decode(item.downloadUrl || ""),
+            downloadUrl: decode(item.downloadUrl || "")
           }));
           this.rules.total = res.data.total;
         }
@@ -271,7 +383,7 @@ export default {
         this.$alert(str, "导入结果", {
           confirmButtonText: "确定",
           dangerouslyUseHTMLString: true,
-          callback: (action) => {},
+          callback: action => {}
         });
       } else {
         this.$message.error(response.msg);
@@ -285,9 +397,9 @@ export default {
       this.sectionVisible = true;
     },
     createEdition() {
-      this.$refs.sectionForm.validate((v) => {
+      this.$refs.sectionForm.validate(v => {
         if (v) {
-          addAppVersionInfo(this.sectionForm).then((res) => {
+          addAppVersionInfo(this.sectionForm).then(res => {
             if (res.code == 200) {
               this.$message.success("新增成功");
               this.sectionVisible = false;
@@ -307,14 +419,14 @@ export default {
     },
     resetEdition() {
       // 修改
-      resetAppVersionInfo(this.sectionForm).then((res) => {
+      resetAppVersionInfo(this.sectionForm).then(res => {
         if (res.code == 200) {
           this.$message.success("修改成功");
           this.sectionVisible = false;
           this.getList();
         }
       });
-    },
+    }
   },
   filters: {
     statusFilter(val) {
@@ -325,7 +437,7 @@ export default {
         return "历史";
       }
       return "";
-    },
+    }
   },
   watch: {
     sectionVisible(val) {
@@ -336,12 +448,12 @@ export default {
           isForceUpdate: "",
           downloadUrl: "",
           status: "",
-          id: "",
+          id: ""
         };
         this.$refs["sectionForm"].resetFields();
       }
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="sass"></style>