vipNewActive.vue 24 KB

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