Bläddra i källkod

Merge branch '10/23-test' into yuetuan

wolyshaw 4 år sedan
förälder
incheckning
d1cfbc0bf3

+ 9 - 0
README-zh.md

@@ -70,6 +70,15 @@ npm run preview -- --report
 
 ```
 
+## 组件
+组件使用的文件统一放到:src/components 目录下,首字母大写
+
+Upload -- 目前只实现了图片上传
+QrCode -- 生成二维码弹窗
+Editor -- 富文本编辑器(如果要用到上传视屏,则需要在处理一下)
+Tooltip --
+
+
 ## 注意事项
 
 ```bash

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/index.html


+ 1 - 0
dist/static/css/chunk-584f74be.3577e1a4.css

@@ -0,0 +1 @@
+.content-tooltip[data-v-64596b6c]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:inline-block}.dialog-footer[data-v-43a5b626]{width:100%;text-align:right}.reword-list[data-v-43a5b626]{display:-webkit-box;display:-ms-flexbox;display:flex}.reword-list .el-form-item[data-v-43a5b626]{-webkit-box-flex:1;-ms-flex:1;flex:1}.add-reword[data-v-43a5b626]{margin-bottom:22px;width:180px;border-style:dashed}

+ 1 - 0
dist/static/css/chunk-64aa1cae.afbf5ff3.css

@@ -0,0 +1 @@
+.right-code .title[data-v-43074d22]{font-size:18px;text-align:center;padding-bottom:8px}.newBand[data-v-43074d22]{display:inline-block}.el-input[data-v-43074d22]{width:180px!important}

+ 0 - 1
dist/static/css/chunk-b10e6fea.cb21165c.css

@@ -1 +0,0 @@
-.content-tooltip[data-v-64596b6c]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:inline-block}.dialog-footer[data-v-17893631]{width:100%;text-align:right}.reword-list[data-v-17893631]{display:-webkit-box;display:-ms-flexbox;display:flex}.reword-list .el-form-item[data-v-17893631]{-webkit-box-flex:1;-ms-flex:1;flex:1}.add-reword[data-v-17893631]{margin-bottom:22px;width:180px;border-style:dashed}

+ 0 - 1
dist/static/css/chunk-e29c4bd8.262c5511.css

@@ -1 +0,0 @@
-.right-code .title[data-v-080514fc]{font-size:18px;text-align:center;padding-bottom:8px}.newBand[data-v-080514fc]{display:inline-block}.el-input[data-v-080514fc]{width:180px!important}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.834627f3.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-584f74be.4011ac6e.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-64aa1cae.d4e2f2ee.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-b10e6fea.ea2f4f82.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-e29c4bd8.1d93a4e5.js


+ 29 - 1
src/api/auditManager.js

@@ -9,4 +9,32 @@ export function getAuditList(data) {
       method: 'get',
       params: data
     })
-  }
+}
+
+// 查看缴费详情
+export function getAuditListDetail(data) {
+    return request({
+      url: api + '/musicGroupPaymentCalender/auditListDetail',
+      method: 'get',
+      params: data
+    })
+}
+
+// 审核通过
+
+export function auditPass(data) {
+    return request({
+      url: api + '/musicGroupPaymentCalender/auditPass',
+      method: 'post',
+     data:qs.stringify(data)
+    })
+}
+
+// 驳回
+export function auditRefuse(data) {
+    return request({
+      url: api + '/musicGroupPaymentCalender/auditRefuse',
+      method: 'post',
+     data:qs.stringify(data)
+    })
+}

+ 86 - 0
src/components/QrCode/index.vue

@@ -0,0 +1,86 @@
+
+<template>
+    <div class="qrCode">
+        <el-dialog :title="title"
+               :visible.sync="status"
+               @close="onDialogClose"
+               width="300px">
+            <div class="left-code">
+                <vue-qr :text="codeUrl" style="width: 100%" :margin="0"></vue-qr>
+                <p class="code-url" v-if="codeUrl">{{ codeUrl }} <el-link @click="copyUrl(codeUrl)" class="link-btn" type="primary">复制</el-link></p>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import VueQr from 'vue-qr'
+import copy from 'copy-to-clipboard'
+export default {
+    data() {
+        return {
+            status: false
+        };
+    },
+    components: {
+        VueQr
+    },
+    props: {
+        value: {
+            // 组件状态
+            type: Boolean,
+            required: true,
+            default() {
+                return false
+            }
+        },
+        title: {
+            type: String,
+            default() {
+                return '查看二维码'
+            }
+        },
+        codeUrl: {
+            type: String
+        }
+    },
+    mounted() {
+        this.status = this.value
+    },
+    methods: {
+        onDialogClose() {
+            this.status = false
+            this.$emit('input', false)
+        },
+        copyUrl(url) {
+            copy(url)
+            this.$message.success('复制成功')
+        },
+    },
+    watch: {
+        value(newValue) {
+            this.status = newValue;
+        },
+        title(newValue, oldValue) {
+            if(newValue != oldValue) {
+                this.title = newValue
+            }
+        }
+    },
+    beforeDestroy() {},
+};
+</script>
+
+<style lang="scss">
+.left-code{
+    .code-url{
+        margin-top: 10px;
+        margin-bottom: 10px;
+        .link-btn{
+            margin-top: 0;
+            margin-bottom: 0;
+            font-size: 12px;
+        }
+    }
+}
+</style>

+ 9 - 2
src/constant/index.js

@@ -87,8 +87,8 @@ export const payStatus = {
 }
 
 export const payOrderType = {
-  STUDENT:'学生',
-  SCHOOL:'学校'
+  STUDENT:'个人',
+  SCHOOL:'学校' 
 }
 
 export const auditType = {
@@ -98,3 +98,10 @@ export const auditType = {
   OPEN:'开启缴费',
   OVER:'缴费已结束'
 }
+
+export const auditPaymentType = {
+  ADD_STUDENT:'新增学员',
+  ADD_COURSE:'临时加课',
+  MUSIC_APPLY:'乐团报名',
+  MUSIC_RENEW:'乐团续费'
+}

+ 3 - 3
src/utils/searchArray.js

@@ -1,5 +1,5 @@
 // 搜索用的下拉数据列表
-import { payOrderType } from '../constant'
+import { payOrderType,auditType,auditPaymentType } from '../constant'
 // 课程类型
 export const courseType = [
   { label: "单技课", value: "SINGLE" },
@@ -209,8 +209,8 @@ export const classTimeList = [
 ]
 
 export const payOrderTypeList = getValueForKey(payOrderType)
-  
-
+export const auditTypeList = getValueForKey(auditType)
+export const auditPaymentTypeList = getValueForKey(auditPaymentType)
 
 function getValueForKey(obj){
   let arr = []

+ 12 - 2
src/utils/vueFilter.js

@@ -1,7 +1,7 @@
 import Vue from 'vue'
 import dayjs from 'dayjs'
 import numeral from 'numeral'
-import { feeProject, feeType, saleType, payStatus, payOrderType, paymentPatternType, payUserType, userPaymentType, courseType } from '../constant'
+import { feeProject, feeType, saleType, payStatus, payOrderType, paymentPatternType, payUserType, userPaymentType, courseType,auditType,auditPaymentType } from '../constant'
 
 // 合并数组
 Vue.filter('joinArray', (value, type) => {
@@ -668,7 +668,17 @@ Vue.filter('receiveFormat', value => {
 })
 
 // 缴费方式
-payOrderType
+
 Vue.filter('payOrderType', value => {
   return payOrderType[value]
 })
+
+// 审核状态 auditType
+Vue.filter('auditType', value => {
+  return auditType[value]
+})
+
+// 审核申请类型 auditPaymentType
+Vue.filter('auditPaymentType', value => {
+  return auditPaymentType[value]
+})

+ 116 - 235
src/views/auditList/index.vue

@@ -34,32 +34,32 @@
         <el-form-item>
           <el-select
             class="multiple"
-            v-model.trim="searchForm.organId"
+            v-model.trim="searchForm.paymentType"
             filterable
             clearable
             placeholder="申请类型"
           >
             <el-option
-              v-for="(item, index) in organList"
+              v-for="(item, index) in paymentTypeList"
               :key="index"
-              :label="item.name"
-              :value="item.id"
+              :label="item.label"
+              :value="item.value"
             ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
           <el-select
             class="multiple"
-            v-model.trim="searchForm.organId"
+            v-model.trim="searchForm.status"
             filterable
             clearable
             placeholder="审核状态"
           >
             <el-option
-              v-for="(item, index) in organList"
+              v-for="(item, index) in statusList"
               :key="index"
-              :label="item.name"
-              :value="item.id"
+              :label="item.label"
+              :value="item.value"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -71,10 +71,9 @@
         <el-table
           :data="tableList"
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-          >
+        >
           <el-table-column type="selection" width="55"></el-table-column>
           <el-table-column
-            width="120px"
             align="center"
             prop="organName"
             label="分部名称"
@@ -86,67 +85,98 @@
           ></el-table-column>
           <el-table-column
             align="center"
+            width="180px"
             prop="musicGroupId"
             label="乐团编号"
           ></el-table-column>
+          <el-table-column align="center" prop="paymentType" label="申请类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.paymentType | auditPaymentType }}
+              </div>
+            </template></el-table-column
+          >
+          <el-table-column align="center" prop="payUserType" label="订单类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.payUserType | payOrderType }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column
             align="center"
-            prop="paymentType"
-            label="申请类型"
-          ></el-table-column>
-           <el-table-column
-            align="center"
-            prop="payUserType"
-            label="订单类型"
-          ></el-table-column>
-           <el-table-column
-            align="center"
             prop="addCourseTotalTime"
             label="加课总时长(分钟)"
           ></el-table-column>
-           <el-table-column
+          <el-table-column
             align="center"
             prop="courseOriginalPrice"
-            label="原现价(分钟)"
-          ></el-table-column>
-             <el-table-column
+            label="原现价(元)"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.courseOriginalPrice | moneyFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
             align="center"
             prop="courseCurrentPrice"
-            label="申请价格(分钟)"
-          ></el-table-column>
-           <el-table-column
-            align="center"
-            prop="memo"
-            label="备注"
-          ></el-table-column>
-           <el-table-column
+            label="申请价格(元)"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.courseCurrentPrice | moneyFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="memo" label="备注">
+            <template slot-scope="scope">
+              <tooltip :content="scope.row.memo" />
+            </template>
+          </el-table-column>
+          <el-table-column
             align="center"
             prop="operatorName"
             label="申请人"
           ></el-table-column>
-            <el-table-column
+          <el-table-column
             align="center"
             prop="auditStatus"
             label="状态"
-          ></el-table-column>
-               <el-table-column
+            width="100px"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.auditStatus | auditType }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
             align="center"
             prop="createTime"
             label="申请时间"
-          ></el-table-column>
-          <el-table-column align="center" label="操作">
+            width="140px"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.createTime | dateForMinFormat }}
+              </div>
+            </template></el-table-column
+          >
+          <!--  -->
+          <el-table-column
+            align="center"
+            label="操作"
+            width="100px"
+            fixed="right"
+          >
             <template slot-scope="scope">
               <el-button
                 v-permission="'helpCenterContent/modify'"
-                @click="openTypes('update', scope.row)"
-                type="text"
-                >修改</el-button
-              >
-              <el-button
-                @click="onTypeDelOpeation(scope.row)"
-                v-permission="'helpCenterContent/delete'"
+                @click="lookDetail(scope.row)"
                 type="text"
-                >删除</el-button
+                >查看</el-button
               >
             </template>
           </el-table-column>
@@ -160,89 +190,36 @@
         />
       </div>
     </div>
-    <el-dialog
-      :title="formTitle[formActionTitle]"
-      :visible.sync="typeStatus"
-      @close="onFormClose('ruleForm')"
-      width="500px"
-    >
-      <el-form :model="form" :rules="rules" ref="ruleForm">
-        <el-form-item label="标题" prop="title" :label-width="formLabelWidth">
-          <el-input
-            v-model.trim="form.title"
-            autocomplete="off"
-            placeholder="请输入标题"
-          ></el-input>
-        </el-form-item>
-        <el-form-item
-          label="分类"
-          prop="catalogId"
-          :label-width="formLabelWidth"
-        >
-          <el-cascader
-            v-if="typeStatus"
-            style="width: 100%"
-            :show-all-levels="false"
-            ref="formCascader"
-            :options="treeList"
-            v-model="form.catalogId"
-            :props="{ checkStrictly: true }"
-            clearable
-          ></el-cascader>
-        </el-form-item>
-        <el-form-item label="内容" prop="content" :label-width="formLabelWidth">
-          <el-input
-            type="textarea"
-            :rows="3"
-            placeholder="请输入内容"
-            v-model="form.content"
-          >
-          </el-input>
-        </el-form-item>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="typeStatus = false">取 消</el-button>
-        <el-button type="primary" @click="onTypeSubmit('ruleForm')"
-          >确 定</el-button
-        >
-      </span>
+    <el-dialog title="申请详情" width="900px" :visible.sync="typeStatus" destroy-on-close>
+      <review :detail="detail" @close="close" />
     </el-dialog>
   </div>
 </template>
 <script>
 import pagination from "@/components/Pagination/index";
+import review from "@/views/resetTeaming/modals/review.vue";
 // import store from '@/store'
-import {
- getAuditList
-} from "@/api/auditManager";
+import { getAuditList, getAuditListDetail } from "@/api/auditManager";
+import { getEmployeeOrgan } from "@/api/buildTeam";
+import Tooltip from "@/components/Tooltip/index";
+import { auditTypeList, auditPaymentTypeList } from "@/utils/searchArray";
+
 export default {
-  components: { pagination },
+  components: { pagination, Tooltip, review },
   name: "helpCategory",
   data() {
     return {
+      paymentTypeList: auditPaymentTypeList,
+      organList: [],
+      statusList: auditTypeList,
       searchForm: {
-        catalogId: null,
+        search: null,
+        paymentType: null,
+        status: null,
+        organId: null,
       },
       tableList: [],
-      formActionTitle: "create",
-      formTitle: {
-        create: "添加帮助中心",
-        update: "修改帮助中心",
-      },
-      typeStatus: false, // 添加教学点
-      formLabelWidth: "100px",
-      form: {
-        title: null, // 标题
-        content: null, // 内容
-        catalogId: null, // 分类编号
-      },
-      rules: {
-        title: [{ required: true, message: "请输入标题", trigger: "blur" }],
-        content: [{ required: true, message: "请输入内容", trigger: "blur" }],
-        catalogId: [
-          { required: true, message: "请输入选择分类", trigger: "blur" },
-        ],
-      },
+
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -250,70 +227,27 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
+      detail: null,
+      typeStatus: false,
     };
   },
   activated() {
     this.getList();
   },
   mounted() {
+    getEmployeeOrgan().then((res) => {
+      if (res.code == 200) {
+        this.organList = res.data;
+      }
+    });
     this.getList();
   },
   methods: {
-    onTypeDelOpeation(row) {
-      this.$confirm("您是否删除该内容?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          helpCenterContentDelete({ id: row.id }).then((res) => {
-            this.messageTips("删除", res);
-          });
-        })
-        .catch(() => {});
-    },
-    onTypeSubmit(formName) {
-      // 添加数据
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          if (this.formActionTitle == "create") {
-            let params = {
-              title: this.form.title, // 标题
-              content: this.form.content, // 内容
-              catalogId: this.form.catalogId[this.form.catalogId.length - 1], // 分类编号
-            };
-            helpCenterContentModify(params).then((res) => {
-              this.messageTips("添加", res);
-            });
-          } else if (this.formActionTitle == "update") {
-            let params = {
-              id: this.form.id,
-              title: this.form.title, // 标题
-              content: this.form.content, // 内容
-              catalogId: this.form.catalogId[this.form.catalogId.length - 1], // 分类编号
-            };
-            helpCenterContentModify(params).then((res) => {
-              this.messageTips("修改", res);
-            });
-          }
-        } else {
-          return false;
-        }
-      });
-    },
-    messageTips(title, res) {
-      if (res.code == 200) {
-        this.$message.success(title + "成功");
-        this.typeStatus = false;
-        this.getList();
-      } else {
-        this.$message.error(res.msg);
-      }
-    },
     getList() {
       let params = {
         page: this.pageInfo.page,
         rows: this.pageInfo.limit,
+        ...this.searchForm,
       };
       getAuditList(params).then((res) => {
         let result = res.data;
@@ -323,78 +257,25 @@ export default {
         }
       });
     },
-    setTableData(result) {
-      let list = [];
-      list = result.map((res) => {
-        let tempList = {};
-        tempList = {
-          value: res.id,
-          label: res.text,
-          parentId: res.parentId,
-        };
-        if (res.children && res.children.length > 0) {
-          tempList.children = this.setTableData(res.children);
-        }
-        return tempList;
-      });
-      return list;
-    },
-    openTypes(type, row) {
-      this.typeStatus = true;
-      this.formActionTitle = type;
-      if (type == "update") {
-        // 修改的时候赋值
-        this.form = {
-          id: row.id,
-          title: row.title, // 标题
-          content: row.content, // 内容
-          catalogId: this.getAllIds(row), // 分类编号
-        };
+
+    lookDetail(row) {
+      // this.detail = res.data
+      this.detail = {
+        id:row.musicGroupPaymentCalenderId,
+        musicGroupId:row.musicGroupId
       }
+      this.typeStatus = true;
     },
-    onToUrl() {
-      this.$router.push("/insideSetting/helpCategory");
-    },
-    getAllIds(row) {
-      let idAndParent = []; // idAndParent保存 Tree所有节点的id和parentId
-      this.getIdAndParent(this.treeList, idAndParent);
-      let parentIds = []; // 用于保存选中节点的父节点及父节点的父节点
-      this.getId(row.catalogId, parentIds, idAndParent);
-      return parentIds.reverse(); //反转数组
-    },
-    getIdAndParent(tree, idAndParentIds) {
-      // idAndParentIds用来保存所有节点的id,parentId
-      // 对原有的数据结构进行遍历,拿出所有节点的id,parentId到一个一维数组中。
-      tree.forEach((item) => {
-        let mid = {
-          id: item.value,
-          parentId: item.parentId,
-        };
-        idAndParentIds.push(mid);
-        if (item.children) {
-          this.getIdAndParent(item.children, idAndParentIds);
-        }
-      });
+    close() {
+      this.typeStatus = false;
+      this.getList()
     },
-    getId(id, parentIds, idAndParent) {
-      idAndParent.forEach((item) => {
-        if (item.id == id) {
-          parentIds.push(id);
-          if (item.parentId != -1) {
-            this.getId(item.parentId, parentIds, idAndParent);
-          }
-        }
-      });
-    },
-    onFormClose(formName) {
-      // 关闭弹窗重置验证
-      this.form = {
-        title: null, // 标题
-        content: null, // 内容
-        catalogId: [], // 分类编号
-      };
-      this.$refs.cascader.handleClear();
-      this.$refs[formName].resetFields();
+  },
+  watch: {
+    typeStatus(val) {
+      if (!val) {
+        this.detail = null;
+      }
     },
   },
 };

+ 18 - 3
src/views/luckyDraw/trophyCreate.vue

@@ -4,6 +4,7 @@
         <el-form :model="form"
                 :rules="rules"
                 ref="ruleForm">
+            <p style="color: red; padding: 0 0 10px 100px;">注意:活动所有奖品的中奖概率之和必须等于100%; <br />活动奖品必须选择一个默认奖品,该奖品建议设置为谢谢参与;</p>
             <el-form-item label="所属活动" prop="groupId" label-width="100PX">
                 <el-select v-model.trim="form.groupId"
                         style="width: 100% !important"
@@ -12,7 +13,7 @@
                 </el-select>
             </el-form-item>
             <el-row :gutter="10" v-for="(reword, index) in form.rewordList" :key="index">
-                <el-col :span="12">
+                <el-col :span="10">
                     <el-form-item :label="`奖品${index + 1}`"
                             label-width="100PX"
                             :prop="'rewordList.' + index + '.name'"
@@ -22,7 +23,7 @@
                                 placeholder="请输入奖品名称"></el-input>
                     </el-form-item>
                 </el-col>
-                <el-col :span="7">
+                <el-col :span="5">
                     <el-form-item :prop="'rewordList.' + index + '.chances'"
                             :rules="[{required: true, validator: validNumber, trigger: 'blur'}]">
                         <el-input v-model.trim="reword.chances"
@@ -33,7 +34,7 @@
                         </el-input>
                     </el-form-item>
                 </el-col>
-                <el-col :span="5">
+                <el-col :span="4">
                     <el-form-item :prop="'rewordList.' + index + '.stock'"
                             :rules="[{required: true, validator: validNumber1, trigger: 'blur'}]">
                         <el-input v-model.trim="reword.stock"
@@ -43,6 +44,17 @@
                         </el-input>
                     </el-form-item>
                 </el-col>
+                <el-col :span="5">
+                    <el-form-item :prop="'rewordList.' + index + '.isDefault'"
+                            :rules="[{required: true, message:'请输入选择是否默认', trigger: 'blur'}]">
+                        <el-select v-model.trim="reword.isDefault"
+                                style="width: 100% !important"
+                                placeholder="请选择是否默认">
+                            <el-option :value="true" label="是"></el-option>
+                            <el-option :value="false" label="否"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
             </el-row>
             <div style="text-align: center">
                 <el-button :disabled="form.rewordList.length <= 1" class="add-reword" round icon="el-icon-minus" @click="onRemoveReword">删除奖品</el-button>
@@ -101,6 +113,7 @@ export default {
                     name: null,
                     chances: null,
                     stock: null,
+                    isDefault: null
                 }],
                 memo: null
             },
@@ -133,6 +146,7 @@ export default {
                 name: null,
                 chances: null,
                 stock: null,
+                isDefault: null
             })
         },
         onSubmit(formName) {
@@ -149,6 +163,7 @@ export default {
                             groupId: form.groupId,
                             chances: numeral(item.chances ? item.chances / 100 : 0).format('0.00'),
                             stock: item.stock,
+                            isDefault: item.isDefault,
                             memo: form.memo,
                             enabled: 1
                         })

+ 24 - 4
src/views/luckyDraw/trophyManager.vue

@@ -53,13 +53,20 @@
                     </template>
                 </el-table-column>
                 <el-table-column align="center"
+                                prop="isDefault"
+                                label="是否默认">
+                    <template slot-scope="scope">
+                        {{ scope.row.isDefault ? '是' : '否' }}
+                    </template>
+                </el-table-column>
+                <el-table-column align="center"
                                 prop="memo"
                                 label="备注">
                     <template slot-scope="scope">
                         <tooltip :content="scope.row.memo" />
                     </template>
                 </el-table-column>
-                </el-table-column>
+
                 <el-table-column align="center" label="操作">
                     <template slot-scope="scope">
                         <el-button @click="onOperationTrophy('update', scope.row)" v-permission="'luckDrawPrize/update'" type="text">修改</el-button>
@@ -75,7 +82,7 @@
 
         <el-dialog :title="formTitle[formActionTitle]"
                 :visible.sync="lotteryCreateStatus"
-                width="600px">
+                width="800px">
             <trophy-create :groupList="groupList"
                         :getList="getList"
                         :close="onPopupClose"></trophy-create>
@@ -119,6 +126,15 @@
                             placeholder="请输入库存">
                     </el-input>
                 </el-form-item>
+                <el-form-item label="是否默认"
+                            prop="isDefault">
+                    <el-select v-model.trim="form.isDefault"
+                            style="width: 100% !important"
+                            placeholder="请选择是否是默认">
+                        <el-option :value="true" label="是"></el-option>
+                        <el-option :value="false" label="否"></el-option>
+                    </el-select>
+                </el-form-item>
                 <el-form-item label="备注"
                             prop="memo">
                     <el-input type="textarea" :rows="2" v-model.trim="form.memo"
@@ -184,14 +200,16 @@ export default {
                 groupId: null,
                 chances: null,
                 stock: null,
-                memo: null
+                memo: null,
+                isDefault: null
             },
             rules: {
                 name: [{required: true, message:'请输入活动名称', trigger: 'blur'}],
                 groupId: [{required: true, message:'请选择所属活动', trigger: 'change'}],
                 chances: [{required: true, validator: validNumber, trigger: 'blur'}],
                 stock: [{required: true, validator: validNumber1, trigger: 'blur'}],
-                enabled: [{required: true, message:'请选择是否启用', trigger: 'change'}]
+                enabled: [{required: true, message:'请选择是否启用', trigger: 'change'}],
+                isDefault: [{required: true, message:'请选择是否默认', trigger: 'change'}]
             },
             pageInfo: {
                 // 分页规则
@@ -236,6 +254,7 @@ export default {
                         groupId: data.groupId,
                         chances: data.chances * 100,
                         stock: data.stock,
+                        isDefault: data.isDefault,
                         memo: data.memo
                     }
                 })
@@ -254,6 +273,7 @@ export default {
                         chances: numeral(form.chances ? form.chances / 100 : 0).format('0.0000'),
                         stock: form.stock,
                         memo: form.memo,
+                        isDefault: form.isDefault,
                         enabled: 1
                     }
                     if(this.formActionTitle == 'update') {

+ 113 - 104
src/views/resetTeaming/modals/review-detail.vue

@@ -1,140 +1,149 @@
 <template>
   <div>
-    <el-alert
-      title="申请信息"
-      :closable="false"
-      class="alert"
-      type="info">
+    <el-alert title="申请信息" :closable="false" class="alert" type="info">
     </el-alert>
     <descriptions :column="2">
-      <descriptions-item label="分部名称:">{{auditDto.organName}}</descriptions-item>
-      <descriptions-item label="乐团名称:">{{auditDto.musicGroupName}}</descriptions-item>
-      <descriptions-item label="乐团编号:">{{auditDto.musicGroupId}}</descriptions-item>
-      <descriptions-item label="申请时间:">{{auditDto.createTime}}</descriptions-item>
-      <descriptions-item label="申请类型:">{{auditDto.paymentType | userPaymentTypeFormat}}</descriptions-item>
-      <descriptions-item label="订单类型:">{{auditDto.payUserType | payUserTypeFormat}}</descriptions-item>
-      <descriptions-item label="学员数量:">{{studentNum}}</descriptions-item>
+      <descriptions-item label="分部名称:">{{
+        auditDto.organName
+      }}</descriptions-item>
+      <descriptions-item label="乐团名称:">{{
+        auditDto.musicGroupName
+      }}</descriptions-item>
+      <descriptions-item label="乐团编号:">{{
+        auditDto.musicGroupId
+      }}</descriptions-item>
+      <descriptions-item label="申请时间:">{{
+        auditDto.createTime
+      }}</descriptions-item>
+      <descriptions-item label="申请类型:">{{
+        auditDto.paymentType | userPaymentTypeFormat
+      }}</descriptions-item>
+      <descriptions-item label="订单类型:">{{
+        auditDto.payUserType | payUserTypeFormat
+      }}</descriptions-item>
+      <descriptions-item label="学员数量:">{{ studentNum }}</descriptions-item>
     </descriptions>
-    <el-alert
-      title="课程信息"
-      :closable="false"
-      class="alert"
-      type="info">
+    <el-alert title="课程信息" :closable="false" class="alert" type="info">
     </el-alert>
     <descriptions :column="3">
-      <descriptions-item label="收费标准:">{{musicGroupPaymentCalenderCourseSettingName}}</descriptions-item>
+      <descriptions-item label="收费标准:">{{
+        musicGroupPaymentCalenderCourseSettingName
+      }}</descriptions-item>
     </descriptions>
-      <el-table
-        :data="musicGroupPaymentCalenderCourseSettings"
-        stripe
-        style="width: 100%;margin-top: 10px;">
-        <el-table-column
-          prop="courseType"
-          label="课程类型"
-          width="120">
-          <template slot-scope="scope">
-            {{ scope.row.courseType | courseTypeFormat}}
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop="isStudentOptional"
-          label="是否免费"
-          width="100">
-        </el-table-column>
-        <el-table-column
-          prop="courseTotalMinuties"
-          label="课程总时长(分钟)">
-        </el-table-column>
-        <el-table-column
-          prop="courseCurrentPrice"
-          label="现价(元)">
-        </el-table-column>
-        <el-table-column
-          prop="courseOriginalPrice"
-          label="原价(元)">
-        </el-table-column>
-      </el-table>
-    <el-alert
-      title="缴费周期"
-      :closable="false"
-      class="alert"
-      type="info">
+    <el-table
+      :data="musicGroupPaymentCalenderCourseSettings"
+      stripe
+      style="width: 100%; margin-top: 10px"
+    >
+      <el-table-column prop="courseType" label="课程类型" width="120">
+        <template slot-scope="scope">
+          {{ scope.row.courseType | courseTypeFormat }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="isStudentOptional" label="是否免费" width="100">
+      </el-table-column>
+      <el-table-column prop="courseTotalMinuties" label="课程总时长(分钟)">
+      </el-table-column>
+      <el-table-column prop="courseCurrentPrice" label="现价(元)">
+      </el-table-column>
+      <el-table-column prop="courseOriginalPrice" label="原价(元)">
+      </el-table-column>
+    </el-table>
+    <el-alert title="缴费周期" :closable="false" class="alert" type="info">
     </el-alert>
     <descriptions :column="2">
-      <descriptions-item label="缴费金额:">{{auditDto.paymentAmount}}</descriptions-item>
-      <descriptions-item label="缴费方式:">{{auditDto.paymentPattern | paymentPatternTypeFormat}}</descriptions-item>
-      <descriptions-item v-if="auditDto.payUserType !== 'SCHOOL'" label="缴费日期:">{{auditDto.startPaymentDate}} - {{auditDto.deadlinePaymentDate}}</descriptions-item>
-      <descriptions-item label="缴费有效期:">{{auditDto.paymentValidStartDate}} - {{auditDto.paymentValidEndDate}}</descriptions-item>
+      <descriptions-item label="缴费金额:">{{
+        auditDto.paymentAmount|moneyFormat
+      }}</descriptions-item>
+      <descriptions-item label="缴费方式:">{{
+        auditDto.paymentPattern | paymentPatternTypeFormat
+      }}</descriptions-item>
+      <descriptions-item
+        v-if="auditDto.payUserType !== 'SCHOOL'"
+        label="缴费日期:"
+        >{{ auditDto.startPaymentDate|dayjsFormat }} -
+        {{ auditDto.deadlinePaymentDate|dayjsFormat }}</descriptions-item
+      >
+      <descriptions-item label="缴费有效期:"
+        >{{ auditDto.paymentValidStartDate }} -
+        {{ auditDto.paymentValidEndDate }}</descriptions-item
+      >
     </descriptions>
-    <el-alert
-      title="其他"
-      :closable="false"
-      class="alert"
-      type="info">
+    <el-alert title="其他" :closable="false" class="alert" type="info">
     </el-alert>
     <descriptions :column="2">
-      <descriptions-item label="是否赠送乐团网管课:">{{detail.isGiveMusicNetwork ? '是' : '否'}}</descriptions-item>
-      <descriptions-item label="备注:">{{detail.memo}}</descriptions-item>
+      <descriptions-item label="是否赠送乐团网管课:">{{
+        auditDto.isGiveMusicNetwork ? "是" : "否"
+      }}</descriptions-item>
+      <descriptions-item label="备注:">{{ auditDto.memo }}</descriptions-item>
     </descriptions>
   </div>
 </template>
 <script>
-import Vue from 'vue'
-import { musicGroupPaymentCalenderView } from '../api'
-import descriptions from '@/components/Descriptions'
-Vue.use(descriptions)
+import Vue from "vue";
+import { musicGroupPaymentCalenderView } from "../api";
+import descriptions from "@/components/Descriptions";
+Vue.use(descriptions);
 const initData = {
   auditDto: {},
   musicGroupPaymentCalenderCourseSettings: [],
   simpleUserDto: [],
   studentNum: 0,
-}
+};
 export default {
-  props: ['detail'],
+  props: ["detail"],
   data() {
     return {
       ...initData,
-    }
+    };
   },
   computed: {
     musicGroupPaymentCalenderCourseSettingName() {
-      const active = this.musicGroupPaymentCalenderCourseSettings[0]
+      const active = this.musicGroupPaymentCalenderCourseSettings[0];
       if (active) {
-        return active.name
+        return active.name;
       }
-      return ''
-    }
+      return "";
+    },
   },
-  async mounted() {
-    try {
-      const res = await musicGroupPaymentCalenderView({
-        calenderId: this.detail.id,
-        musicGroupId: this.detail.musicGroupId,
-      })
-      for (const key in initData) {
-        if (initData.hasOwnProperty(key)) {
-          this[key] = res.data[key]
-        }
-      }
-    } catch (error) {}
+  mounted() {
+    this.init();
   },
-}
+  activated() {
+    this.init();
+  },
+  methods: {
+    async init() {
+        try {
+          const res = await musicGroupPaymentCalenderView({
+            calenderId: this.detail.id,
+            musicGroupId: this.detail.musicGroupId,
+          });
+          for (const key in initData) {
+            if (initData.hasOwnProperty(key)) {
+              this[key] = res.data[key];
+            }
+          }
+        } catch (error) {}
+    },
+  }
+};
 </script>
 <style lang="less" scoped>
-  .alert{
-    margin: 10px 0;
-  }
-  // /deep/ .description-view{
-  //   border: none;
-  //     .description-tr{
-  //       border-bottom: none;
-  //     }
-  //     .description-label{
-  //       border-right: none;
-  //       background-color: transparent;
-  //     }
-  //     .description-content{
-  //       border-right: none;
-  //     }
-  // }
+.alert {
+  margin: 10px 0;
+}
+// /deep/ .description-view{
+//   border: none;
+//     .description-tr{
+//       border-bottom: none;
+//     }
+//     .description-label{
+//       border-right: none;
+//       background-color: transparent;
+//     }
+//     .description-content{
+//       border-right: none;
+//     }
+// }
 </style>

+ 39 - 35
src/views/resetTeaming/modals/review.vue

@@ -1,60 +1,64 @@
 <template>
   <div>
-    <reviewDetail
-      :detail="detail"
-    />
-    <el-alert
-      title="审核意见"
-      :closable="false"
-      class="alert"
-      type="info">
+    <reviewDetail v-if="detail && detail.id" :detail="detail" />
+    <el-alert title="审核意见" :closable="false" class="alert" type="info">
     </el-alert>
     <el-input
       type="textarea"
-      :autosize="{ minRows: 2, maxRows: 4}"
+      :autosize="{ minRows: 2, maxRows: 4 }"
       placeholder="请输入审核意见"
-      v-model="textarea2">
+      v-model="remark"
+    >
     </el-input>
     <div slot="footer" class="dialog-footer">
-      <el-button @click="$listeners.close">取 消</el-button>
-      <el-button
-        type="primary"
-        @click="submit"
-        >审核</el-button>
-      <el-button
-        type="danger"
-        @click="submit"
-        >驳回</el-button>
+      <!-- <el-button @click="$listeners.close">取 消</el-button> -->
+      <el-button type="primary" @click="submit(1)">审核通过</el-button>
+      <el-button type="danger" @click="submit(0)">驳回</el-button>
     </div>
   </div>
 </template>
 <script>
-import Vue from 'vue'
-import reviewDetail from './review-detail'
-
+import Vue from "vue";
+import reviewDetail from "./review-detail";
+import { auditPass, auditRefuse } from "@/api/auditManager";
 export default {
-  props: ['detail'],
+  props: ["detail"],
   components: {
-    reviewDetail
+    reviewDetail,
   },
   data() {
     return {
-      remark: ''
-    }
+      remark: "",
+    };
   },
   methods: {
-    async submit() {
+    async submit(val) {
       if (!this.remark) {
-        return this.$message.error('请输入审核意见')
+        return this.$message.error("请输入审核意见");
       }
-    }
+      if (val) {
+        auditPass({calenderId:this.detail.id,auditMemo:this.remark}).then((res) => {
+          if(res.code == 200){
+            this.$message.success('审核通过')
+            this.$emit('close')
+          }
+        });
+      } else {
+           auditRefuse({calenderId:this.detail.id,auditMemo:this.remark}).then((res) => {
+          if(res.code == 200){
+            this.$message.success('驳回成功')
+             this.$emit('close')
+          }
+        });
+      }
+    },
   },
-}
+};
 </script>
 <style lang="less" scoped>
-  .dialog-footer{
-    margin-top: 20px;
-    display: block;
-    text-align: right;
-  }
+.dialog-footer {
+  margin-top: 20px;
+  display: block;
+  text-align: right;
+}
 </style>

+ 1 - 1
src/views/sporadicManager/sporadicList.vue

@@ -201,7 +201,7 @@
         <el-form-item label="缴费人数"
                       prop="maxNum"
                       :rules="[{ required: true, validator: validMaxNum, trigger: 'blur' }]"
-                      v-show="maskForm.type == 12">
+                      v-if="maskForm.type == 12">
           <el-input v-model.trim="maskForm.maxNum"
                     type="number"
                     @mousewheel.native.prevent></el-input>

+ 1 - 1
src/views/teamBuild/components/soundSetComponents/soundSetCore.vue

@@ -476,7 +476,7 @@ export default {
         schoolId: this.topfor.address,
         expectStartGroupDate: this.topfor.startTime,
         isClassroomLessons: this.topfor.isClass,
-        status: "DRAFT",
+        status: 'DRAFT',
         ownershipType: this.topfor.ownershipType,
         repairUserId: this.topfor.repairUserId,
         feeType: this.topfor.feeType,

+ 28 - 2
src/views/teamBuild/components/teamSoundSet.vue

@@ -22,16 +22,19 @@
       >
         下一步
       </div>
-      <div
+      <!-- <div
         class="submitBtn"
         @click="submitAudit(1)"
         v-if="teamStatus != 'teamAudit'"
       >
         提交审核
-      </div>
+      </div> -->
       <div class="submitBtn" @click="approval" v-if="teamStatus == 'teamAudit'">
         审核通过
       </div>
+       <div class="submitBtn" @click="refuse" v-if="teamStatus == 'teamAudit'">
+        驳回
+      </div>
     </div>
   </div>
 </template>
@@ -112,6 +115,29 @@ export default {
         })
         .catch(() => {});
     },
+        refuse () {
+      // auditFailed
+      this.$prompt("请输入拒绝原因", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消"
+      }).then(({ value }) => {
+        //   点击确认  值是value
+        if (!value) {
+          this.$message.error("请输入驳回原因");
+          return;
+        } else {
+          auditFailed({ musicGroupId: this.teamid, memo: value }).then(res => {
+            if (res.code == 200) {
+              this.$message.success("已拒绝");
+              this.$router.push({
+                path: "/business/teamDetail",
+                query: { search: this.Fsearch, rules: this.Frules }
+              });
+            }
+          });
+        }
+      });
+    },
   },
 
   computed: {},

Vissa filer visades inte eftersom för många filer har ändrats