baseInfo.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. <template>
  2. <div>
  3. <el-alert
  4. title="基础信息"
  5. type="info"
  6. :closable="false"
  7. class="baseMsg"
  8. ></el-alert>
  9. <div class="m-core">
  10. <el-form
  11. :label-position="labelPosition"
  12. :model="baseForm"
  13. ref="vipform"
  14. label-width="140px"
  15. :rules="vipformRules"
  16. class="vipform"
  17. >
  18. <el-form-item label="活动名称" prop="name">
  19. <el-input
  20. style="width: 400px"
  21. v-model.trim="baseForm.name"
  22. :disabled="isDisabled || status != 'DRAFT'"
  23. ></el-input>
  24. </el-form-item>
  25. <!-- @visible-change="$forceUpdate()" -->
  26. <el-form-item label="适用分部" prop="organ">
  27. <select-all
  28. v-model.trim="baseForm.organ"
  29. style="width: 400px"
  30. multiple
  31. filterable
  32. @change="onOrganChange"
  33. clearable
  34. :disabled="isDisabled || status != 'DRAFT'"
  35. >
  36. <el-option
  37. v-for="(item, index) in selects.branchs"
  38. :key="index"
  39. :label="item.name"
  40. :value="item.id"
  41. ></el-option>
  42. </select-all>
  43. <!-- <el-button @click="onCheckAllBranch">适用所有分部</el-button> -->
  44. </el-form-item>
  45. <el-form-item label="活动描述" prop="description">
  46. <el-input
  47. type="textarea"
  48. v-model.trim="baseForm.description"
  49. style="width: 400px"
  50. :rows="5"
  51. placeholder="请输入活动说明"
  52. :disabled="isDisabled || status != 'DRAFT'"
  53. ></el-input>
  54. </el-form-item>
  55. <el-form-item label="活动渠道" prop="activityChannel">
  56. <el-select
  57. v-model.trim="baseForm.activityChannel"
  58. placeholder="请选择活动渠道"
  59. clearable
  60. style="width: 400px !important"
  61. :disabled="isDisabled || status != 'DRAFT'"
  62. @change="changeActivityChannel"
  63. >
  64. <el-option label="乐团渠道" :value="1"></el-option>
  65. <el-option label="常规活动" :value="2"></el-option>
  66. </el-select>
  67. </el-form-item>
  68. <el-form-item
  69. label="活动类型"
  70. prop="activityType"
  71. v-if="baseForm.activityChannel == 2"
  72. >
  73. <el-select
  74. v-model.trim="baseForm.activityType"
  75. placeholder="请选择活动类型"
  76. clearable
  77. style="width: 400px !important"
  78. @change="changeActivityType"
  79. :disabled="isDisabled || status != 'DRAFT'"
  80. >
  81. <el-option label="课程活动" :value="0"></el-option>
  82. <el-option label="会员活动" :value="1"></el-option>
  83. </el-select>
  84. </el-form-item>
  85. <el-form-item label="活动生效时间" prop="activeTime">
  86. <el-date-picker
  87. :disabled="isDisabled"
  88. v-model.trim="baseForm.activeTime"
  89. type="datetimerange"
  90. :default-time="['00:00:00', '23:59:59']"
  91. range-separator="至"
  92. value-format="yyyy-MM-dd HH:mm:ss"
  93. start-placeholder="开始日期"
  94. :picker-options="{
  95. firstDayOfWeek: 1,
  96. }"
  97. end-placeholder="结束日期"
  98. ></el-date-picker>
  99. <el-tooltip placement="top" popper-class="mTooltip">
  100. <div slot="content">
  101. 可通过该方案购买课程的时间范围,到达开始时间才可购买,到达结束时间后不可购买,不填则不限制且立即生效
  102. </div>
  103. <i
  104. class="el-icon-question micon el-tooltip"
  105. style="font-size: 18px; color: #f56c6c"
  106. ></i>
  107. </el-tooltip>
  108. </el-form-item>
  109. <div v-if="baseForm.activityChannel == 2">
  110. <el-form-item label="排课时间范围" prop="courseTime">
  111. <el-date-picker
  112. :disabled="isDisabled"
  113. v-model.trim="baseForm.courseTime"
  114. type="datetimerange"
  115. :default-time="['00:00:00', '23:59:59']"
  116. range-separator="至"
  117. value-format="yyyy-MM-dd HH:mm:ss"
  118. start-placeholder="开始日期"
  119. :picker-options="{
  120. firstDayOfWeek: 1,
  121. }"
  122. end-placeholder="结束日期"
  123. ></el-date-picker>
  124. <el-tooltip placement="top" popper-class="mTooltip">
  125. <div slot="content">
  126. 通过该方案购买的课程排课时,课程时间不可超过该时间范围,不填则不限制
  127. </div>
  128. <i
  129. class="el-icon-question micon el-tooltip"
  130. style="font-size: 18px; color: #f56c6c"
  131. ></i>
  132. </el-tooltip>
  133. </el-form-item>
  134. <el-form-item label="适用学员" prop="applyToStudentType">
  135. <el-row>
  136. <el-col style="width: 400px">
  137. <select-all
  138. v-model.trim="baseForm.applyToStudentType"
  139. style="width: 400px"
  140. multiple
  141. filterable
  142. clearable
  143. placeholder="请选择适用学员"
  144. @change="applyToStudentTypeChange"
  145. :disabled="isDisabled"
  146. >
  147. <el-option label="新学员" value="1"></el-option>
  148. <el-option label="老学员" value="0"></el-option>
  149. <el-option label="会员" value="2"></el-option>
  150. <el-option label="非会员" value="3"></el-option>
  151. </select-all>
  152. </el-col>
  153. <el-tooltip placement="top" popper-class="mTooltip">
  154. <div slot="content">
  155. 可通过该方案购买课程的学员群体,不填则不限制
  156. </div>
  157. <i
  158. class="el-icon-question micon el-tooltip"
  159. style="font-size: 18px; color: #f56c6c; margin-left: 3px"
  160. ></i>
  161. </el-tooltip>
  162. </el-row>
  163. </el-form-item>
  164. <el-form-item label="可购买次数" prop="studentMaxUsedTimes">
  165. <el-input
  166. style="width: 400px"
  167. type="number"
  168. v-model.trim="baseForm.studentMaxUsedTimes"
  169. :disabled="isDisabled"
  170. >
  171. <template slot="append">次</template>
  172. </el-input>
  173. <el-tooltip placement="top" popper-class="mTooltip">
  174. <div slot="content">
  175. 学员可以购买该活动方案的次数限制,不填则不限制
  176. </div>
  177. <i
  178. class="el-icon-question micon el-tooltip"
  179. style="font-size: 18px; color: #f56c6c"
  180. ></i>
  181. </el-tooltip>
  182. </el-form-item>
  183. <!-- <el-form-item label="是否充值课程余额" prop="isPayToBalance">
  184. <el-select
  185. v-model.trim="baseForm.isPayToBalance"
  186. placeholder="请选择是否充值课程余额"
  187. clearable
  188. style="width: 400px !important"
  189. :disabled="isDisabled || status != 'DRAFT' || balanceDis"
  190. >
  191. <el-option label="课程余额" :value="1"></el-option>
  192. <el-option label="资格限制" :value="0"></el-option>
  193. </el-select>
  194. <el-tooltip placement="top" popper-class="mTooltip">
  195. <div slot="content">
  196. 课程余额:学员缴费金额进入课程余额,排课时扣减课程余额,若课程余额不足则不可排课<br/>
  197. 资格限制:学员缴费金额不进入课程余额,学员购买后增加可排课次数,排课后扣减可排课次数
  198. 会员活动默认为资格限制,不可修改
  199. </div>
  200. <i
  201. class="el-icon-question micon el-tooltip"
  202. style="font-size: 18px; color: #f56c6c"
  203. ></i>
  204. </el-tooltip>
  205. </el-form-item> -->
  206. </div>
  207. <el-form-item
  208. label="活动售价"
  209. prop="marketPrice"
  210. :rules="[
  211. {
  212. required: true,
  213. message: '请选输入活动售价',
  214. trigger: 'blur',
  215. },
  216. {
  217. pattern:
  218. /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  219. message: '请输入正确的金额',
  220. },
  221. ]"
  222. >
  223. <el-input
  224. style="width: 400px"
  225. type="number"
  226. v-model.trim="baseForm.marketPrice"
  227. :disabled="isDisabled || status != 'DRAFT'"
  228. >
  229. <template slot="append">元</template>
  230. </el-input>
  231. <el-tooltip placement="top" popper-class="mTooltip">
  232. <div slot="content">
  233. 该字段仅用于关联的营销活动中本方案的销售价格,后台、老师端为学员创建课程不受此价格影响
  234. </div>
  235. <i
  236. class="el-icon-question micon el-tooltip"
  237. style="font-size: 18px; color: #f56c6c"
  238. ></i>
  239. </el-tooltip>
  240. </el-form-item>
  241. <el-form-item
  242. label="活动原价"
  243. prop="originalPrice"
  244. :rules="[
  245. { required: true, message: '请选输入活动原价', trigger: 'blur' },
  246. {
  247. pattern:
  248. /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  249. message: '请输入正确的金额',
  250. },
  251. ]"
  252. >
  253. <el-input
  254. style="width: 400px"
  255. type="number"
  256. v-model.trim="baseForm.originalPrice"
  257. :disabled="isDisabled || status != 'DRAFT'"
  258. >
  259. <template slot="append">元</template>
  260. </el-input>
  261. </el-form-item>
  262. </el-form>
  263. </div>
  264. </div>
  265. </template>
  266. <script>
  267. import { vipGroupCategory, addVipActive } from "@/api/vipSeting";
  268. import { getEmployeeOrgan } from "@/api/buildTeam";
  269. import cleanDeep from "clean-deep";
  270. export default {
  271. props: ["baseForm", "isDisabled", "status"],
  272. name: "vipNewActive",
  273. data() {
  274. return {
  275. pageType: "",
  276. labelPosition: "right",
  277. vipformRules: {
  278. name: [
  279. { required: true, message: "请输入活动名称", trigger: "blur" },
  280. {
  281. min: 1,
  282. max: 25,
  283. message: "长度在 1 到 25 个字符",
  284. trigger: "blur",
  285. },
  286. ],
  287. desc: [
  288. { required: true, message: "请输入文字描述", trigger: "blur" },
  289. {
  290. min: 1,
  291. max: 200,
  292. message: "长度在 1 到 200 个字符",
  293. trigger: "blur",
  294. },
  295. ],
  296. activityType: [
  297. { required: true, message: "请选择活动类型", trigger: "change" },
  298. ],
  299. activityChannel: [
  300. { required: true, message: "请选择活动渠道", trigger: "change" },
  301. ],
  302. courseTime: [
  303. { required: false, message: "请选择课程时间", trigger: "change" },
  304. ],
  305. studentMaxUsedTimes: [
  306. { required: false, message: "请输入购买次数", trigger: "blur" },
  307. { pattern: /^\+?[1-9]\d*$/, message: "请输入大于0的正整数" },
  308. ],
  309. organ: [
  310. { required: true, message: "请选择适用分部", trigger: "change" },
  311. ],
  312. stauts: [
  313. { required: true, message: "请选择活动形式", trigger: "change" },
  314. ],
  315. applyToStudentType: [
  316. { required: false, message: "请选择是否新生专享" },
  317. ],
  318. isPayToBalance: [
  319. {
  320. required: true,
  321. message: "请选择是否支付到余额",
  322. trigger: "change",
  323. },
  324. ],
  325. allowOnlineToOffline: [
  326. { required: true, message: "请选择课程调整方式", trigger: "change" },
  327. ],
  328. },
  329. courseStatusList: [], // 获取所有课程形式
  330. activeType: "",
  331. online: true,
  332. unonline: true,
  333. onlineSalary: "TEACHER_DEFAULT",
  334. unonlineSalary: "TEACHER_DEFAULT",
  335. onlineprice: "",
  336. unonlineprice: "",
  337. salaryReadonlyFlag: false,
  338. paymentReadonlyFlag: false,
  339. attribute1: "",
  340. attribute2: "",
  341. courseNumForm: {
  342. minCourseNum: "",
  343. maxCourseNum: "",
  344. studentMaxUsedTimes: "",
  345. },
  346. giveClassPaySalaryFlag: true,
  347. organList: [],
  348. onlineClassJoinGradientRewards: false,
  349. offlineClassJoinGradientRewards: false,
  350. courseNumrules: {
  351. minCourseNum: [
  352. { required: true, message: "请输入最小课时数", trigger: "blur" },
  353. { validator: this.validateCom, trigger: "blur" },
  354. { validator: this.validateMin, trigger: "blur" },
  355. ],
  356. maxCourseNum: [
  357. { required: true, message: "请输入最大课时数", trigger: "blur" },
  358. { validator: this.validateCom, trigger: "blur" },
  359. { validator: this.validateMax, trigger: "blur" },
  360. ],
  361. },
  362. };
  363. },
  364. async mounted() {
  365. // 首先获取课程形式
  366. // vipGroupCategory().then(res => {
  367. // if (res.code == 200) {
  368. // this.courseStatusList = res.data;
  369. // }
  370. // });
  371. // // 适用分部
  372. // getEmployeeOrgan().then(res => {
  373. // if (res.code == 200) {
  374. // this.organList = res.data;
  375. // }
  376. // });
  377. // 获取类型
  378. await this.$store.dispatch("setVipGroupCategory");
  379. // 获取分部
  380. await this.$store.dispatch("setBranchs");
  381. // this.onReSet();
  382. // if (this.$route.query.rules) {
  383. // this.rules = this.$route.query.rules;
  384. // }
  385. // if (this.$route.query.searchForm) {
  386. // this.searchForm = this.$route.query.searchForm;
  387. // }
  388. this.pageType = this.$route.query.type;
  389. if (!this.$route.query.id) {
  390. this.$refs.vipform.resetFields();
  391. }
  392. //
  393. },
  394. methods: {
  395. resetForm() {
  396. this.$refs.form.resetFields();
  397. },
  398. handleMinChange() {
  399. this.$refs.form.validateField("maxCourseNum");
  400. },
  401. handleMaxChange() {
  402. this.$refs.form.validateField("minCourseNum");
  403. },
  404. validateCom(rule, value, callback) {
  405. const one = Number(value);
  406. if (Number.isInteger(one)) {
  407. if (one < MIN_NUMBER) {
  408. return callback(new Error("输入值必须大于0"));
  409. } else if (one > MAX_NUMBER) {
  410. return callback(new Error("输入值必须小于999"));
  411. }
  412. return callback();
  413. }
  414. return callback(new Error("输入值必须为正整数"));
  415. },
  416. validateMin(rule, value, callback) {
  417. const one = Number(value);
  418. const max = Number(this.courseNumForm.maxCourseNum);
  419. if (!max || one <= max) {
  420. return callback();
  421. }
  422. return callback(new Error("输入值不得大于最大课时数"));
  423. },
  424. validateMax(rule, value, callback) {
  425. const one = Number(value);
  426. const min = Number(this.courseNumForm.minCourseNum);
  427. if (!min || one >= min) {
  428. return callback();
  429. }
  430. return callback(new Error("输入值不得小于最小课时数"));
  431. },
  432. changeStauts(val) {
  433. console.log(val);
  434. },
  435. changeActivityType(val) {
  436. this.$emit("resetPayInfo");
  437. },
  438. changeActivityChannel(val) {
  439. this.$emit("resetPayInfo");
  440. this.$emit("resetBaseChannel", val);
  441. },
  442. submitFrom() {
  443. this.$refs.form.validate((isok) => {
  444. if (isok) {
  445. this.$refs["vipform"].validate((valid) => {
  446. if (valid) {
  447. // 验证通过
  448. let coursesStartTime = null,
  449. coursesEndTime = null,
  450. startTime = null,
  451. endTime = null;
  452. if (
  453. this.vipform.courseTime &&
  454. this.vipform.courseTime.length > 0
  455. ) {
  456. coursesStartTime = this.vipform.courseTime[0];
  457. coursesEndTime = this.vipform.courseTime[1];
  458. }
  459. if (
  460. this.vipform.activeTime &&
  461. this.vipform.activeTime.length > 0
  462. ) {
  463. startTime = this.vipform.activeTime[0];
  464. endTime = this.vipform.activeTime[1];
  465. }
  466. let organId = this.vipform.organ.join(",");
  467. let type = this.activeType;
  468. if (!type) {
  469. this.$message.error("请选择活动类型");
  470. return;
  471. }
  472. if (!this.online && !this.unonline) {
  473. this.$message.error("请选择活动适用范围");
  474. return;
  475. }
  476. if (type == "DISCOUNT") {
  477. if (!this.attribute1 || this.attribute1 < 0) {
  478. this.$message.error("折扣必须大于等于0");
  479. return;
  480. }
  481. } else if (type == "GIVE_CLASS") {
  482. if (!this.attribute1) {
  483. this.$message.error("请输入多少节开始赠");
  484. return;
  485. }
  486. if (!this.attribute2) {
  487. this.$message.error("请输入赠送课时数");
  488. return;
  489. }
  490. }
  491. let vipGroupCategoryIdList = this.vipform.stauts.join(",");
  492. let onlineSalarySettlement;
  493. let offlineSalarySettlement;
  494. if (this.online) {
  495. // 勾选线上
  496. if (this.onlineSalary == "RATIO_DISCOUNT") {
  497. if (this.onlineprice < 0 || this.onlineprice > 100) {
  498. this.$message.error("折扣比必须大于0且小于100");
  499. return;
  500. }
  501. } else if (this.onlineSalary == "TEACHER_DEFAULT") {
  502. this.onlineprice = 0;
  503. }
  504. onlineSalarySettlement = {
  505. salarySettlementType: this.onlineSalary,
  506. settlementValue: this.onlineprice,
  507. };
  508. } else {
  509. onlineSalarySettlement = null;
  510. }
  511. if (this.unonline) {
  512. // 勾选线下
  513. if (this.unonlineSalary == "RATIO_DISCOUNT") {
  514. if (this.unonlineprice < 0 || this.unonlineprice > 100) {
  515. this.$message.error("折扣比必须大于0且小于100");
  516. return;
  517. }
  518. } else if (this.unonlineSalary == "TEACHER_DEFAULT") {
  519. this.unonlineprice = 0;
  520. }
  521. offlineSalarySettlement = {
  522. salarySettlementType: this.unonlineSalary,
  523. settlementValue: this.unonlineprice,
  524. };
  525. } else {
  526. offlineSalarySettlement = null;
  527. }
  528. let salaryReadonlyFlag = this.salaryReadonlyFlag * 1;
  529. let paymentReadonlyFlag = this.paymentReadonlyFlag * 1;
  530. // let giveClassPaySalaryFlag = this.giveClassPaySalaryFlag * 1;
  531. let vipGroupSalarySettlement = {
  532. onlineSalarySettlement,
  533. offlineSalarySettlement,
  534. };
  535. if (type == "BASE_ACTIVITY") {
  536. this.courseNumForm.studentMaxUsedTimes = -1;
  537. this.courseNumForm.minCourseNum = -1;
  538. this.courseNumForm.maxCourseNum = -1;
  539. } else if (type == "GIVE_CLASS") {
  540. this.courseNumForm.minCourseNum = -1;
  541. this.courseNumForm.maxCourseNum = -1;
  542. }
  543. // 发请求创建活动
  544. addVipActive(
  545. cleanDeep({
  546. coursesStartTime,
  547. coursesEndTime,
  548. startTime,
  549. endTime,
  550. name: this.vipform.name,
  551. description: this.vipform.desc,
  552. applyToStudentType: this.vipform.applyToStudentType,
  553. allowOnlineToOffline: this.vipform.allowOnlineToOffline,
  554. organId,
  555. type,
  556. vipGroupCategoryIdList,
  557. vipGroupSalarySettlement,
  558. salaryReadonlyFlag,
  559. paymentReadonlyFlag,
  560. giveClassPaySalaryFlag: 1,
  561. attribute1: this.attribute1,
  562. attribute2: this.attribute2,
  563. minCourseNum: this.courseNumForm.minCourseNum,
  564. maxCourseNum: this.courseNumForm.maxCourseNum,
  565. studentMaxUsedTimes: this.courseNumForm.studentMaxUsedTimes
  566. ? this.courseNumForm.studentMaxUsedTimes
  567. : -1,
  568. offlineClassJoinGradientRewards:
  569. this.offlineClassJoinGradientRewards * 1,
  570. onlineClassJoinGradientRewards:
  571. this.onlineClassJoinGradientRewards * 1,
  572. })
  573. ).then((res) => {
  574. if (res.code == 200) {
  575. this.$message.success("恭喜你,活动创建成功");
  576. // this.onReSet();
  577. this.$store.dispatch("delVisitedViews", this.$route);
  578. this.$router.push({
  579. path: "/vipActiveManager/vipActiveList",
  580. });
  581. }
  582. });
  583. } else {
  584. this.$nextTick(() => {
  585. let isError = document.getElementsByClassName("is-error");
  586. isError[0].scrollIntoView({
  587. block: "center",
  588. behavior: "smooth",
  589. });
  590. });
  591. // this.$message.error("请填写必要参数");
  592. }
  593. });
  594. }
  595. });
  596. // 线上线下课 勾选就传不勾选就不传
  597. // addVipActive().then(res => { })
  598. },
  599. onOrganChange() {
  600. // this.$forceUpdate();
  601. this.$refs.vipform.validateField("organ");
  602. this.$forceUpdate();
  603. },
  604. applyToStudentTypeChange() {
  605. this.$refs.vipform.validateField("applyToStudentType");
  606. this.$forceUpdate();
  607. },
  608. onCheckAllBranch() {
  609. // 选择所有分部
  610. let vipform = this.vipform;
  611. vipform.organ = [];
  612. this.selects.branchs.forEach((item) => {
  613. vipform.organ.push(item.id);
  614. });
  615. this.$refs.vipform.validateField("organ");
  616. this.$forceUpdate();
  617. },
  618. onReSet() {
  619. this.vipform = {
  620. name: "",
  621. desc: "",
  622. activeTime: [],
  623. courseTime: [],
  624. };
  625. this.activeType = "";
  626. this.online = true;
  627. this.unonline = true;
  628. this.salaryReadonlyFlag = false;
  629. this.onlineSalary = "TEACHER_DEFAULT";
  630. this.unonlineSalary = "TEACHER_DEFAULT";
  631. this.onlineprice = "";
  632. this.unonlineprice = "";
  633. this.onlineClassJoinGradientRewards = false;
  634. this.offlineClassJoinGradientRewards = false;
  635. this.attribute1 = "";
  636. this.attribute2 = "";
  637. this.courseNumForm.maxCourseNum = "";
  638. this.courseNumForm.minCourseNum = "";
  639. // this.$refs.vipform.resetFields();
  640. },
  641. },
  642. computed: {
  643. balanceDis() {
  644. if (this.baseForm.activityType) {
  645. this.baseForm.isPayToBalance = 0;
  646. return true;
  647. } else {
  648. return false;
  649. }
  650. },
  651. },
  652. };
  653. </script>
  654. <style lang="scss" scoped>
  655. .baseMsg {
  656. margin: 30px 0;
  657. }
  658. .m-core {
  659. font-size: 14px;
  660. width: 100%;
  661. display: flex;
  662. flex-direction: column;
  663. justify-content: center;
  664. // text-align: center;
  665. .activeRange {
  666. display: flex;
  667. flex-direction: row;
  668. justify-content: flex-start;
  669. .left {
  670. height: 72px;
  671. line-height: 72px;
  672. }
  673. .right {
  674. .chioseWrap {
  675. display: flex;
  676. flex-direction: row;
  677. justify-content: flex-start;
  678. height: 72px;
  679. line-height: 72px;
  680. align-items: center;
  681. .el-checkbox {
  682. margin-right: 20px;
  683. }
  684. .el-select {
  685. margin-right: 20px;
  686. }
  687. }
  688. }
  689. }
  690. .activeType {
  691. display: flex;
  692. flex-direction: row;
  693. justify-content: flex-start;
  694. .left {
  695. margin-right: 20px;
  696. p {
  697. height: 40px;
  698. line-height: 40px;
  699. }
  700. }
  701. .right {
  702. > div {
  703. display: flex;
  704. flex-direction: row;
  705. justify-content: flex-start;
  706. height: 40px;
  707. line-height: 40px;
  708. margin-bottom: 20px;
  709. .head {
  710. width: 120px;
  711. height: 40px;
  712. line-height: 40px;
  713. border: 1px solid #ccc;
  714. text-align: center;
  715. border-radius: 5px;
  716. cursor: pointer;
  717. margin-right: 10px;
  718. }
  719. > .head.active {
  720. background-color: var(--color-primary);
  721. color: #fff;
  722. border: none;
  723. }
  724. .title {
  725. line-height: 40px;
  726. height: 40px;
  727. }
  728. }
  729. }
  730. }
  731. }
  732. </style>
  733. <style lang="scss">
  734. .m-core {
  735. // .vipform {
  736. // .el-select {
  737. // .el-input__inner {
  738. // }
  739. // }
  740. // }
  741. .activeType {
  742. .right {
  743. .el-input {
  744. width: 150px !important;
  745. }
  746. }
  747. }
  748. }
  749. </style>