vipActiveList.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. <template >
  2. <div class="m-container">
  3. <h2>
  4. <div class="squrt"></div>VIP活动方案
  5. </h2>
  6. <div class="m-core">
  7. <div class="newBand"
  8. v-permission="'/vipNewActive'"
  9. @click='gotoNewActive'>新建</div>
  10. <el-form :inline="true"
  11. class="searchForm"
  12. v-model="searchForm">
  13. <el-form-item prop='organId'>
  14. <el-select class='multiple'
  15. style="width:180px!important"
  16. v-model="searchForm.organId"
  17. clearable
  18. placeholder="请选择分部">
  19. <el-option v-for="(item,index) in organList"
  20. :key="index"
  21. :label="item.name"
  22. :value="item.id"></el-option>
  23. </el-select>
  24. </el-form-item>
  25. <el-form-item>
  26. <el-button @click="search"
  27. type="danger">搜索</el-button>
  28. </el-form-item>
  29. </el-form>
  30. <div class="tableWrap">
  31. <el-table :data='tableList'
  32. :header-cell-style="{background:'#EDEEF0',color:'#444'}">
  33. <el-table-column align='center'
  34. prop="id"
  35. label="活动编号">
  36. </el-table-column>
  37. <el-table-column align='center'
  38. prop="name"
  39. label="活动名称">
  40. </el-table-column>
  41. <el-table-column align='center'
  42. prop="vipGroupCategoryNames"
  43. label="适用课程形式">
  44. </el-table-column>
  45. <el-table-column align='center'
  46. prop="type"
  47. :formatter="fommatterType"
  48. label="活动类型">
  49. </el-table-column>
  50. <el-table-column align='center'
  51. label="适用课时类型"
  52. :formatter="fommatterCourseType">
  53. </el-table-column>
  54. <el-table-column align='center'
  55. label="结算标准">
  56. <template slot-scope="scope">
  57. <div>
  58. <p>{{ scope.row.salarySettlementJson | onlinePip }}</p>
  59. <p>{{ scope.row.salarySettlementJson | unonlinePip }}</p>
  60. </div>
  61. </template>
  62. </el-table-column>
  63. <el-table-column align='center'
  64. label="结算说明">
  65. <template slot-scope="scope">
  66. <div>
  67. <p>{{ scope.row.salarySettlementJson | onlineDesc }}</p>
  68. <p>{{ scope.row.salarySettlementJson | unonlineDesc }}</p>
  69. </div>
  70. </template>
  71. </el-table-column>
  72. <el-table-column align='center'
  73. label="启用状态"
  74. prop='enable'
  75. :formatter="fommatterEnable">
  76. </el-table-column>
  77. <el-table-column align='center'
  78. width="130px"
  79. label="活动持续时间">
  80. <template slot-scope="scope">
  81. <div>
  82. <p>{{ scope.row.startTime | formatTimer }}</p>
  83. <p>{{ scope.row.endTime | formatTimer }}</p>
  84. </div>
  85. </template>
  86. </el-table-column>
  87. <el-table-column align='center'
  88. width="130px"
  89. label="课程安排时间">
  90. <template slot-scope="scope">
  91. <div>
  92. <p>{{ scope.row.coursesStartTime | formatTimer }}</p>
  93. <p>{{ scope.row.coursesEndTime | formatTimer }}</p>
  94. </div>
  95. </template>
  96. </el-table-column>
  97. <el-table-column align='center'
  98. label="操作">
  99. <template slot-scope="scope">
  100. <div>
  101. <el-button type='text'
  102. v-permission="'vipGroupActivity/update'"
  103. @click="reset(scope.row)">修改</el-button>
  104. <!-- <el-button type='text'
  105. @click="remove(scope.row)">删除</el-button> -->
  106. <el-popover placement="top"
  107. width="160"
  108. v-permission="'vipGroupActivity/delete'"
  109. :ref="scope.$index">
  110. <p>确定删除?</p>
  111. <div style="text-align: right; margin: 0">
  112. <el-button size="mini"
  113. type="text"
  114. @click="scope._self.$refs[scope.$index].doClose()">取消</el-button>
  115. <el-button type="primary"
  116. size="mini"
  117. @click="remove(scope)">确定</el-button>
  118. </div>
  119. <el-button type="text"
  120. slot="reference">删除</el-button>
  121. </el-popover>
  122. </div>
  123. </template>
  124. </el-table-column>
  125. </el-table>
  126. <!-- 分页器 -->
  127. <pagination :total="rules.total"
  128. :page.sync="rules.page"
  129. :limit.sync="rules.limit"
  130. :page-sizes="rules.page_size"
  131. @pagination="getList" />
  132. </div>
  133. </div>
  134. <el-dialog title='提示'
  135. width="60%"
  136. :visible.sync="dialogVisible">
  137. <div>
  138. <el-form :label-position="labelPosition"
  139. :model="resetForm"
  140. ref='vipform'
  141. :rules='resetFormRules'
  142. class="vipform">
  143. <el-form-item label="活动名称"
  144. prop="name">
  145. <el-input style="width:400px"
  146. v-model="resetForm.name"></el-input>
  147. </el-form-item>
  148. <el-form-item label="适用分部"
  149. prop="organ">
  150. <el-select v-model="resetForm.organ"
  151. multiple
  152. clearable>
  153. <el-option v-for='(item,index) in organList'
  154. :key="index"
  155. :label="item.name"
  156. :value="item.id"></el-option>
  157. </el-select>
  158. <el-button @click="onCheckAllBranch">适用所有分部</el-button>
  159. </el-form-item>
  160. <el-form-item label="活动描述"
  161. prop="desc">
  162. <el-input type="textarea"
  163. v-model="resetForm.desc"
  164. style="width:400px"
  165. :rows="5"
  166. placeholder="请输入活动说明"></el-input>
  167. </el-form-item>
  168. <el-form-item label="活动时间"
  169. prop="activeTime">
  170. <el-date-picker v-model="resetForm.activeTime"
  171. type="datetimerange"
  172. range-separator="至"
  173. value-format="yyyy-MM-dd HH:mm:ss"
  174. start-placeholder="开始日期"
  175. end-placeholder="结束日期">
  176. </el-date-picker>
  177. </el-form-item>
  178. <el-form-item label="课程时间"
  179. prop="courseTime">
  180. <el-date-picker v-model="resetForm.courseTime"
  181. type="datetimerange"
  182. range-separator="至"
  183. value-format="yyyy-MM-dd HH:mm:ss"
  184. start-placeholder="开始日期"
  185. end-placeholder="结束日期">
  186. </el-date-picker>
  187. </el-form-item>
  188. <el-form-item label="课程形式"
  189. prop="stauts">
  190. <el-select v-model="resetForm.stauts"
  191. multiple>
  192. <el-option v-for="(item,index) in courseStatusList"
  193. :key='index'
  194. :value="item.id"
  195. :label="item.name"></el-option>
  196. </el-select>
  197. </el-form-item>
  198. </el-form>
  199. <div class="activeRange">
  200. <div class="left">
  201. <p>活动适用范围&结算标准:</p>
  202. </div>
  203. <div class="right">
  204. <div class="chioseWrap">
  205. <el-checkbox label="线上课"
  206. v-model="online"></el-checkbox>
  207. <el-select v-model="onlineSalary">
  208. <el-option label="老师默认课酬"
  209. value="TEACHER_DEFAULT"></el-option>
  210. <el-option label="课程单价比例折扣"
  211. value="RATIO_DISCOUNT"></el-option>
  212. <el-option label="固定课酬"
  213. value="FIXED_SALARY"></el-option>
  214. </el-select>
  215. <el-input placeholder="请输入"
  216. style="width:100px"
  217. type="number"
  218. v-if='onlineSalary!= "TEACHER_DEFAULT"'
  219. v-model="onlineprice"></el-input>
  220. </div>
  221. <div class="chioseWrap">
  222. <el-checkbox label="线下课"
  223. v-model="unonline"></el-checkbox>
  224. <el-select v-model="unonlineSalary">
  225. <el-option label="老师默认课酬"
  226. value="TEACHER_DEFAULT"></el-option>
  227. <el-option label="课程单价比例折扣"
  228. value="RATIO_DISCOUNT"></el-option>
  229. <el-option label="固定课酬"
  230. value="FIXED_SALARY"></el-option>
  231. </el-select>
  232. <el-input placeholder="请输入"
  233. style="width:100px"
  234. v-if='unonlineSalary!= "TEACHER_DEFAULT"'
  235. type="number"
  236. v-model="unonlineprice"></el-input>
  237. </div>
  238. <div class="chioseWrap">
  239. <el-checkbox v-model="salaryReadonlyFlag"
  240. label="可自定义收费、结算标准"></el-checkbox>
  241. </div>
  242. </div>
  243. </div>
  244. <div class="activeType">
  245. <div class="left">
  246. <p style='width:60px;'>活动类型</p>
  247. </div>
  248. <div class="right">
  249. <div>
  250. <div class="head"
  251. :class="activeType=='BASE_ACTIVITY'?'active':''"
  252. @click="activeType='BASE_ACTIVITY'">基础活动</div>
  253. <p class="title"
  254. v-if="activeType=='BASE_ACTIVITY'">课程原价</p>
  255. </div>
  256. <div>
  257. <div class="head"
  258. :class="activeType=='DISCOUNT'?'active':''"
  259. @click="activeType='DISCOUNT'">折扣</div>
  260. <el-input v-if="activeType=='DISCOUNT'"
  261. v-model="attribute1"
  262. placeholder="请输入折扣数值"></el-input>
  263. </div>
  264. <div>
  265. <div class="head"
  266. :class="activeType=='GIVE_CLASS'?'active':''"
  267. @click="activeType='GIVE_CLASS'">赠送课时</div>
  268. <el-input placeholder="多少节开始赠"
  269. v-if="activeType=='GIVE_CLASS'"
  270. v-model="attribute1"
  271. style='margin-right:10px;'></el-input> <span v-if="activeType=='GIVE_CLASS'">赠</span>
  272. <el-input v-if="activeType=='GIVE_CLASS'"
  273. placeholder="请输入赠送课时数"
  274. v-model="attribute2"
  275. style='margin:0 10px;'></el-input>
  276. <el-checkbox v-if="activeType=='GIVE_CLASS'"
  277. v-model="giveClassPaySalaryFlag"
  278. label="赠送课时结算课酬"></el-checkbox>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. <span slot="footer"
  284. class="dialog-footer">
  285. <el-button @click="dialogVisible = false">取 消</el-button>
  286. <el-button type="primary"
  287. @click="resetRow">确 定</el-button>
  288. </span>
  289. </el-dialog>
  290. </div>
  291. </template>
  292. <script>
  293. import pagination from '@/components/Pagination/index'
  294. import { vipGroupActivity, vipGroupCategory, addVipActive, resetVipActive, removeVipActive } from "@/api/vipSeting"
  295. import { getEmployeeOrgan } from '@/api/buildTeam'
  296. export default {
  297. components: { pagination },
  298. data () {
  299. return {
  300. labelPosition: 'right',
  301. tableList: [],
  302. rules: {
  303. // 分页规则
  304. limit: 10, // 限制显示条数
  305. page: 1, // 当前页
  306. total: 0, // 总条数
  307. page_size: [10, 20, 40, 50] // 选择限制显示条数
  308. },
  309. searchForm: { organId: null },
  310. organList: [],
  311. dialogVisible: false,
  312. resetForm: {
  313. name: '',
  314. desc: '',
  315. activeTime: [],
  316. courseTime: [],
  317. stauts: [],
  318. organ: []
  319. }, // 修改信息
  320. resetFormRules: {
  321. name: [{ required: true, message: '请输入活动名称', trigger: 'blur' },
  322. { min: 1, max: 25, message: '长度在 1 到 25 个字符', trigger: 'blur' }],
  323. desc: [{ required: false, message: '请输入文字描述', trigger: 'blur' },
  324. { min: 1, max: 200, message: '长度在 1 到 200 个字符', trigger: 'blur' }],
  325. activeTime: [{ required: false, message: '请选择活动时间', trigger: 'blur' }],
  326. courseTime: [{ required: false, message: '请选择课程时间', trigger: 'blur' }],
  327. organ: [{ required: true, message: '请选择分部', trigger: 'blur' }]
  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: true,
  338. attribute1: '',
  339. attribute2: '',
  340. attribute3: '',
  341. giveClassPaySalaryFlag: false,
  342. activeId: ''
  343. }
  344. },
  345. created () {
  346. if (this.$route.query.searchForm) {
  347. this.$route.query.searchForm instanceof Object ? this.searchForm = this.$route.query.searchForm : this.searchForm = JSON.parse(this.$route.query.searchForm);
  348. }
  349. if (this.$route.query.rules) {
  350. this.$route.query.rules instanceof Object ? this.rules = this.$route.query.rules : this.rules = JSON.parse(this.$route.query.rules);
  351. }
  352. },
  353. mounted () {
  354. getEmployeeOrgan().then(res => {
  355. if (res.code == 200) {
  356. this.organList = res.data;
  357. }
  358. })
  359. this.getList();
  360. // 首先获取课程形式
  361. // 获取分部id
  362. vipGroupCategory().then(res => {
  363. if (res.code == 200) {
  364. this.courseStatusList = res.data;
  365. }
  366. })
  367. },
  368. filters: {
  369. onlinePip (val) {
  370. let obj = JSON.parse(val)
  371. // debugger;
  372. if (obj && obj.onlineSalarySettlement && obj.onlineSalarySettlement.salarySettlementType) {
  373. switch (obj.onlineSalarySettlement.salarySettlementType) {
  374. case 'RATIO_DISCOUNT': {
  375. return '线上:比例结算'
  376. break
  377. }
  378. case 'TEACHER_DEFAULT': {
  379. return '线上:老师默认'
  380. break
  381. }
  382. case 'FIXED_SALARY': {
  383. return '线上:固定课酬'
  384. break
  385. }
  386. }
  387. }
  388. },
  389. unonlinePip (val) {
  390. let obj = JSON.parse(val)
  391. if (obj && obj.offlineSalarySettlement && obj.offlineSalarySettlement.salarySettlementType) {
  392. switch (obj.offlineSalarySettlement.salarySettlementType) {
  393. case 'RATIO_DISCOUNT': {
  394. return '线下:比例结算'
  395. break
  396. }
  397. case 'TEACHER_DEFAULT': {
  398. return '线下:老师默认'
  399. break
  400. }
  401. case 'FIXED_SALARY': {
  402. return '线下:固定课酬'
  403. break
  404. }
  405. }
  406. }
  407. },
  408. onlineDesc (val) {
  409. let obj = JSON.parse(val)
  410. // debugger;
  411. if (obj && obj.onlineSalarySettlement && obj.onlineSalarySettlement.salarySettlementType) {
  412. switch (obj.onlineSalarySettlement.salarySettlementType) {
  413. case 'RATIO_DISCOUNT': {
  414. return `线上:${obj.onlineSalarySettlement.settlementValue}%`
  415. break
  416. }
  417. case 'TEACHER_DEFAULT': {
  418. return '线上:默认'
  419. break
  420. }
  421. case 'FIXED_SALARY': {
  422. return `线上:${obj.onlineSalarySettlement.settlementValue}/次`
  423. break
  424. }
  425. }
  426. }
  427. },
  428. unonlineDesc (val) {
  429. let obj = JSON.parse(val)
  430. if (obj && obj.offlineSalarySettlement && obj.offlineSalarySettlement.salarySettlementType) {
  431. switch (obj.offlineSalarySettlement.salarySettlementType) {
  432. case 'RATIO_DISCOUNT': {
  433. return '线下:' + obj.offlineSalarySettlement.settlementValue + '%'
  434. break
  435. }
  436. case 'TEACHER_DEFAULT': {
  437. return '线下:默认'
  438. break
  439. }
  440. case 'FIXED_SALARY': {
  441. return '线下:' + obj.offlineSalarySettlement.settlementValue + '/次'
  442. break
  443. }
  444. }
  445. }
  446. }
  447. },
  448. methods: {
  449. onCheckAllBranch () {
  450. // 适用所有分部
  451. this.resetForm.organ = []
  452. this.organList.forEach(item => {
  453. this.resetForm.organ.push(item.id)
  454. })
  455. },
  456. search () {
  457. this.rules.page = 1;
  458. this.getList();
  459. },
  460. getList () {
  461. vipGroupActivity({
  462. organId: this.searchForm.organId,
  463. rows: this.rules.limit,
  464. page: this.rules.page }).then(res => {
  465. if (res.code == 200) {
  466. this.tableList = res.data.rows
  467. this.rules.total = res.data.total
  468. }
  469. })
  470. },
  471. // 格式化活动类型
  472. fommatterType (row, column) {
  473. switch (row.type) {
  474. case 'BASE_ACTIVITY': {
  475. return '基础';
  476. break;
  477. }
  478. case 'DISCOUNT': {
  479. return '折扣';
  480. break;
  481. }
  482. case 'GIVE_CLASS': {
  483. if (row.giveClassPaySalaryFlag) {
  484. return '买赠(赠课结算)';
  485. } else {
  486. return '买赠(不结算)';
  487. }
  488. break;
  489. }
  490. }
  491. },
  492. // 格式化课时类型
  493. fommatterCourseType (row) {
  494. let date = JSON.parse(row.salarySettlementJson);
  495. let str = '';
  496. if (date && date.onlineSalarySettlement) {
  497. str += '线上 '
  498. }
  499. if (date && date.offlineSalarySettlement) {
  500. str += '线下'
  501. }
  502. return str
  503. },
  504. // 格式化启用状态
  505. fommatterEnable (row) {
  506. switch (row.enable) {
  507. case 0: {
  508. return '关闭'
  509. break
  510. }
  511. case 1: {
  512. return '开启'
  513. break
  514. }
  515. }
  516. },
  517. // 点击列表修改同步状态
  518. reset (row) {
  519. this.activeId = row.id;
  520. this.dialogVisible = true;
  521. this.resetForm.name = row.name;
  522. this.resetForm.desc = row.description;
  523. if (row.organId) {
  524. this.resetForm.organ = row.organId.split(',').map(res => {
  525. return parseInt(res);
  526. });
  527. }
  528. if (row.vipGroupCategoryIdList) {
  529. this.resetForm.stauts = row.vipGroupCategoryIdList.split(',').map(res => {
  530. return parseInt(res);
  531. });
  532. }
  533. // 同步活动时间
  534. if (row.startTime && row.endTime) {
  535. this.resetForm.activeTime = [row.startTime, row.endTime];
  536. }
  537. if (row.coursesStartTime && row.coursesEndTime) {
  538. this.resetForm.courseTime = [row.coursesStartTime, row.coursesEndTime];
  539. }
  540. // 同步适用范围
  541. let obj = JSON.parse(row.salarySettlementJson);
  542. // 同步线上课状态
  543. obj.onlineSalarySettlement ? this.online = true : this.online = false;
  544. if (obj.onlineSalarySettlement) {
  545. this.onlineSalary = obj.salarySettlementType;
  546. if (obj.onlineSalarySettlement.settlementValue) {
  547. this.onlineprice = obj.onlineSalarySettlement.settlementValue;
  548. }
  549. if (obj.onlineSalarySettlement.salarySettlementType)
  550. this.onlineSalary = obj.onlineSalarySettlement.salarySettlementType;
  551. }
  552. // 同步线下课状态
  553. obj.offlineSalarySettlement ? this.unonline = true : this.unonline = false;
  554. if (obj.offlineSalarySettlement) {
  555. this.unonlineSalary = obj.offlineSalarySettlement;
  556. if (obj.offlineSalarySettlement.settlementValue) {
  557. this.unonlineprice = obj.offlineSalarySettlement.settlementValue;
  558. }
  559. if (obj.offlineSalarySettlement.salarySettlementType)
  560. this.unonlineSalary = obj.offlineSalarySettlement.salarySettlementType;
  561. }
  562. //
  563. this.salaryReadonlyFlag = !!parseInt(row.salaryReadonlyFlag);
  564. this.activeType = row.type;
  565. this.attribute1 = row.attribute1;
  566. this.attribute2 = row.attribute2;
  567. this.giveClassPaySalaryFlag = row.giveClassPaySalaryFlag == 1 ? true : false;
  568. },
  569. // 点击确认按钮发送修改请求
  570. resetRow () {
  571. this.$refs['vipform'].validate((valid) => {
  572. if (valid) {
  573. // 验证通过
  574. let id = this.activeId;
  575. let coursesStartTime = this.resetForm.courseTime[0];
  576. let coursesEndTime = this.resetForm.courseTime[1];
  577. let startTime = this.resetForm.activeTime[0];
  578. let endTime = this.resetForm.activeTime[1];
  579. let organId = this.resetForm.organ.join(',');
  580. let type = this.activeType;
  581. let vipGroupCategoryIdList = this.resetForm.stauts.join(',')
  582. let onlineSalarySettlement;
  583. let offlineSalarySettlement;
  584. if (this.online) {
  585. // 勾选线上
  586. onlineSalarySettlement = {
  587. salarySettlementType: this.onlineSalary,
  588. settlementValue: this.onlineprice
  589. }
  590. } else {
  591. onlineSalarySettlement = null;
  592. }
  593. if (this.unonline) {
  594. // 勾选线下
  595. offlineSalarySettlement = {
  596. salarySettlementType: this.unonlineSalary,
  597. settlementValue: this.unonlineprice
  598. }
  599. } else {
  600. offlineSalarySettlement = null
  601. }
  602. let salaryReadonlyFlag = this.salaryReadonlyFlag * 1;
  603. let giveClassPaySalaryFlag = this.giveClassPaySalaryFlag * 1;
  604. let vipGroupSalarySettlement = {
  605. onlineSalarySettlement,
  606. offlineSalarySettlement
  607. }
  608. // 发请求创建活动
  609. resetVipActive({
  610. id,
  611. coursesStartTime,
  612. coursesEndTime,
  613. startTime,
  614. endTime,
  615. name: this.resetForm.name,
  616. description: this.resetForm.desc,
  617. organId,
  618. type,
  619. vipGroupCategoryIdList,
  620. vipGroupSalarySettlement,
  621. salaryReadonlyFlag,
  622. giveClassPaySalaryFlag,
  623. attribute1: this.attribute1,
  624. attribute2: this.attribute2,
  625. attribute3: this.attribute3
  626. }).then(res => {
  627. if (res.code == 200) {
  628. this.$message.success('恭喜你,活动修改成功')
  629. this.dialogVisible = false;
  630. this.getList();
  631. }
  632. })
  633. } else {
  634. this.$message.error('请填写必要参数')
  635. }
  636. })
  637. },
  638. remove (scope) {
  639. let id = scope.row.id;
  640. removeVipActive({ id }).then(res => {
  641. if (res.code == 200) {
  642. this.$message.success('恭喜您删除成功')
  643. this.getList();
  644. }
  645. scope._self.$refs[scope.$index].doClose()
  646. })
  647. },
  648. gotoNewActive () {
  649. // 带参数 searchForm: { organId: null } 搜索条件
  650. let rules = JSON.stringify(this.rules)
  651. let searchForm = JSON.stringify(this.searchForm)
  652. this.$router.push({ path: '/vipClassSet/vipNewActive?type=create', query: { rules, searchForm } })
  653. }
  654. },
  655. }
  656. </script>
  657. <style lang="scss" scoped>
  658. .activeType {
  659. .right {
  660. .el-input {
  661. width: 150px !important;
  662. }
  663. }
  664. }
  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: #13817a;
  721. color: #fff;
  722. border: none;
  723. }
  724. .title {
  725. line-height: 40px;
  726. height: 40px;
  727. }
  728. }
  729. }
  730. }
  731. .vipform {
  732. .el-select {
  733. width: 400px !important;
  734. .el-input__inner {
  735. width: 400px;
  736. }
  737. }
  738. }
  739. </style>