teamRules.vue 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. <template>
  2. <div class="m-container">
  3. <div>
  4. <el-form :inline="true" :model="form" ref="form">
  5. <el-alert
  6. style="margin: 20px 0 40px"
  7. title="预报名规则"
  8. :closable="false"
  9. type="info"
  10. >
  11. </el-alert>
  12. <el-row>
  13. <el-form-item
  14. prop="132"
  15. :rules="[
  16. {
  17. required: false,
  18. pattern: /^\d+$/,
  19. message: '请输入正确的人数',
  20. },
  21. ]"
  22. >
  23. 乐团预报名人数达到
  24. <el-input v-model="form['132']" placeholder="请输入人数">
  25. <template slot="append">人</template>
  26. </el-input>
  27. 时,可将乐团状态变更为创建缴费中。
  28. </el-form-item>
  29. </el-row>
  30. <el-alert
  31. style="margin: 40px 0"
  32. title="报名缴费规则"
  33. :closable="false"
  34. type="info"
  35. >
  36. </el-alert>
  37. <el-row>
  38. <el-form-item
  39. prop="134"
  40. :rules="[
  41. {
  42. required: false,
  43. pattern: /^\d+$/,
  44. message: '请输入正确的人数',
  45. },
  46. ]"
  47. >
  48. 报名缴费阶段乐团若未合并学员,缴费人数达到
  49. <el-input v-model="form['134']" placeholder="请输入人数">
  50. <template slot="append">人</template>
  51. </el-input>
  52. 时,可确认开团。
  53. </el-form-item>
  54. </el-row>
  55. <el-row>
  56. <el-form-item
  57. prop="135"
  58. :rules="[
  59. {
  60. required: false,
  61. pattern: /^\d+$/,
  62. message: '请输入正确的人数',
  63. },
  64. ]"
  65. >
  66. 报名缴费阶段乐团若合并学员,缴费人数达到
  67. <el-input v-model="form['135']" placeholder="请输入人数">
  68. <template slot="append">人</template>
  69. </el-input>
  70. 时,可确认开团。
  71. </el-form-item>
  72. </el-row>
  73. <el-alert
  74. style="margin: 40px 0"
  75. title="乐团筹备规则"
  76. :closable="false"
  77. type="info"
  78. v-if="isPlatform"
  79. >
  80. </el-alert>
  81. <el-row v-if="isPlatform">
  82. <el-form-item
  83. prop="76"
  84. :rules="[
  85. {
  86. required: false,
  87. pattern: /^[1-9][0-9]*$/,
  88. message: '请输入正确的天数',
  89. },
  90. ]"
  91. >
  92. 订单支付
  93. <el-input v-model="form['76']" placeholder="请输入天数">
  94. <template slot="append">天</template>
  95. </el-input>
  96. 后自动更新为已收货,不设置时立即更新。
  97. </el-form-item>
  98. </el-row>
  99. <el-alert
  100. style="margin: 40px 0"
  101. title="会员乐团规则"
  102. :closable="false"
  103. type="info"
  104. >
  105. </el-alert>
  106. <el-row>
  107. <el-form-item
  108. prop="136"
  109. :rules="[
  110. {
  111. required: true,
  112. message: '请输入人数',
  113. },
  114. {
  115. required: false,
  116. pattern: /^[1-9][0-9]*$/,
  117. message: '请输入正确的人数',
  118. },
  119. ]"
  120. >
  121. <span style="color: #f56c6c; margin-right: 4px">*</span>
  122. 乐团各声部不购买团练宝或乐器就可以直接入团的人数
  123. <el-input v-model="form[136]" placeholder="请输入人数">
  124. <template slot="append">人</template> </el-input
  125. >。
  126. </el-form-item>
  127. </el-row>
  128. <el-row>
  129. <el-form-item
  130. prop="133"
  131. :rules="[
  132. {
  133. required: true,
  134. message: '请输入分钟数',
  135. trigger: 'change',
  136. },
  137. {
  138. pattern: /^[1-9][0-9]*$/,
  139. message: '请输入正确的分钟数',
  140. },
  141. ]"
  142. >
  143. <span style="color: #f56c6c; margin-right: 4px">*</span>
  144. 会员团每学期赠送
  145. <el-input v-model="form[133]" placeholder="请输入分钟数">
  146. <template slot="append">分钟</template>
  147. </el-input>
  148. 课程。
  149. </el-form-item>
  150. </el-row>
  151. <el-row>
  152. <el-form-item
  153. prop="99"
  154. :rules="[
  155. {
  156. required: false,
  157. pattern: /^[1-9][0-9]*$/,
  158. message: '请输入正确的天数',
  159. },
  160. ]"
  161. >
  162. 每学期结束前
  163. <el-input v-model="form[99]">
  164. <template slot="append">天</template>
  165. </el-input>
  166. 提醒教务老师安排下学期课程。
  167. </el-form-item>
  168. </el-row>
  169. <!-- <el-row>
  170. <el-form-item
  171. prop="99"
  172. :rules="[
  173. {
  174. required: false,
  175. pattern: /^[1-9][0-9]*$/,
  176. message: '请输入正确的天数',
  177. },
  178. ]"
  179. >
  180. 学员团练宝有效期结束前
  181. <el-input v-model="form[104]" >
  182. <template slot="append">天</template>
  183. </el-input>
  184. 自动创建续费。
  185. </el-form-item>
  186. </el-row> -->
  187. </el-form>
  188. <el-button
  189. type="primary"
  190. @click="save"
  191. class="saveBtn"
  192. v-if="!isPlatform"
  193. v-permission="'sysTenantConfig/batchUpSet_teamRules'"
  194. >保存</el-button
  195. >
  196. <el-button
  197. type="primary"
  198. @click="save"
  199. class="saveBtn"
  200. v-else
  201. v-permission="'sysConfig/batchUpdate_teamRules'"
  202. >保存</el-button
  203. >
  204. </div>
  205. </div>
  206. </template>
  207. <script>
  208. import { getSysTenantConfig, setSysTenantConfig } from "../api";
  209. import { sysConfigList, sysConfigUpdate } from "@/api/generalSettings"; // 平台的修改和查
  210. export default {
  211. props: ["isPlatform"],
  212. data() {
  213. return {
  214. form: {},
  215. questionList: [],
  216. rulesVisiable: false,
  217. };
  218. },
  219. async mounted() {
  220. this.getRules();
  221. // try {
  222. // const res = await questionnaireTopicQueryPage({ page: 1, rows: 999 });
  223. // this.questionList = res.data.rows.map((item) => {
  224. // return {
  225. // label: item.title,
  226. // value: String(item.id),
  227. // };
  228. // });
  229. // } catch (e) {
  230. // console.log(e);
  231. // }
  232. },
  233. methods: {
  234. getRules() {
  235. if (this.isPlatform) {
  236. this.getPlatformRules();
  237. } else {
  238. this.getInstitutionRules();
  239. }
  240. },
  241. async getPlatformRules() {
  242. try {
  243. const res = await sysConfigList({ group: "MUSIC" });
  244. res.data.forEach((item) => {
  245. // this.form[item.paramName] = item.paranValue
  246. this.$set(this.form, item.id, item.paranValue);
  247. });
  248. // this.$forceUpdate()
  249. console.log(this.form);
  250. } catch (e) {
  251. console.log(e);
  252. }
  253. },
  254. async getInstitutionRules() {
  255. try {
  256. const res = await getSysTenantConfig({ group: "MUSIC" });
  257. res.data.forEach((item) => {
  258. // this.form[item.paramName] = item.paranValue
  259. this.$set(this.form, item.id, item.paranValue);
  260. });
  261. // this.$forceUpdate()
  262. console.log(this.form);
  263. } catch (e) {
  264. console.log(e);
  265. }
  266. },
  267. savePlatform() {
  268. this.$refs.form.validate(async (valid) => {
  269. if (valid) {
  270. let param = [];
  271. for (let i in this.form) {
  272. param.push({
  273. id: i,
  274. paranValue: this.form[i],
  275. });
  276. }
  277. try {
  278. const res = await sysConfigUpdate(param);
  279. this.$message.success("保存成功");
  280. this.getRules();
  281. } catch (e) {
  282. console.log(e);
  283. }
  284. }
  285. });
  286. },
  287. saveInstitution() {
  288. this.$refs.form.validate(async (valid) => {
  289. if (valid) {
  290. let param = [];
  291. for (let i in this.form) {
  292. param.push({
  293. id: i,
  294. paranValue: this.form[i],
  295. });
  296. }
  297. try {
  298. const res = await setSysTenantConfig(param);
  299. this.$message.success("保存成功");
  300. this.getRules();
  301. } catch (e) {
  302. console.log(e);
  303. }
  304. }
  305. });
  306. },
  307. save() {
  308. if (this.isPlatform) {
  309. this.savePlatform();
  310. } else {
  311. this.saveInstitution();
  312. }
  313. },
  314. },
  315. };
  316. </script>
  317. <style lang="scss" scoped>
  318. @import "../index.scss";
  319. </style>