memberFeeSet.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889
  1. <template>
  2. <div class="m-container">
  3. <h2>
  4. <div class="squrt"></div>
  5. 会员收费标准
  6. </h2>
  7. <div class="m-core" v-if="tableList.length>0 || rules.page>1">
  8. <save-form
  9. :inline="true"
  10. class="searchForm"
  11. save-key="memberFeeSet"
  12. ref="searchForm"
  13. @submit="search"
  14. @reset="onReSet"
  15. :model.sync="searchForm"
  16. >
  17. <!-- 状态 指导老师 活动方案-->
  18. <el-form-item prop="search">
  19. <el-input
  20. v-model.trim="searchForm.search"
  21. clearable
  22. placeholder="会员名称"
  23. ></el-input>
  24. </el-form-item>
  25. <el-form-item prop="organId">
  26. <el-select
  27. class="multiple"
  28. filterable
  29. style="width: 180px !important"
  30. v-model.trim="searchForm.organId"
  31. clearable
  32. placeholder="请选择分部"
  33. >
  34. <el-option
  35. v-for="(item, index) in selects.branchs"
  36. :key="index"
  37. :label="item.name"
  38. :value="item.id"
  39. ></el-option>
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item>
  43. <el-button native-type="submit" type="danger">搜索</el-button>
  44. <el-button native-type="reset" type="primary">重置</el-button>
  45. </el-form-item>
  46. </save-form>
  47. <el-button
  48. type="primary"
  49. style="margin-bottom: 20px"
  50. v-permission="'memberRankOrganizationFeeMapper/add'"
  51. @click="addFee"
  52. >新增收费标准</el-button
  53. >
  54. <el-table
  55. :data="tableList"
  56. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  57. >
  58. <el-table-column
  59. align="left"
  60. prop="organName"
  61. label="分部"
  62. ></el-table-column>
  63. <el-table-column
  64. align="left"
  65. prop="rankName"
  66. label="会员名称"
  67. ></el-table-column>
  68. <!-- <el-table-column align="center" prop="type" label="1天收费现价(元)">
  69. <template slot-scope="scope">
  70. <div>
  71. {{ scope.row.memberFeeSetting.currentDayFee | hasMoneyFormat }}
  72. </div>
  73. </template>
  74. </el-table-column>
  75. <el-table-column align="center" prop="type" label="1天收费原价(元)">
  76. <template slot-scope="scope">
  77. <div>
  78. {{ scope.row.memberFeeSetting.originalDayFee | hasMoneyFormat }}
  79. </div>
  80. </template>
  81. </el-table-column> -->
  82. <el-table-column align="left" prop="type" label="月收费">
  83. <template slot-scope="scope">
  84. <div>
  85. <p>
  86. 团购:
  87. {{
  88. scope.row.memberFeeSetting.groupPurchaseMonthFee
  89. | hasMoneyFormat
  90. }}
  91. </p>
  92. <!-- <p>
  93. 零售:
  94. {{ scope.row.memberFeeSetting.currentMonthFee | hasMoneyFormat }}
  95. </p> -->
  96. <p>
  97. 原价:
  98. {{
  99. scope.row.memberFeeSetting.originalMonthFee | hasMoneyFormat
  100. }}
  101. </p>
  102. </div>
  103. </template>
  104. </el-table-column>
  105. <el-table-column align="left" prop="type" label="季度收费">
  106. <template slot-scope="scope">
  107. <div>
  108. <p>
  109. 团购:
  110. {{
  111. scope.row.memberFeeSetting.groupPurchaseQuarterlyFee
  112. | hasMoneyFormat
  113. }}
  114. </p>
  115. <!-- <p>
  116. 零售:
  117. {{
  118. scope.row.memberFeeSetting.currentQuarterlyFee | hasMoneyFormat
  119. }}
  120. </p> -->
  121. <p>
  122. 原价:
  123. {{
  124. scope.row.memberFeeSetting.originalQuarterlyFee
  125. | hasMoneyFormat
  126. }}
  127. </p>
  128. <!-- </div>
  129. {{ scope.row.memberFeeSetting.currentHalfYearFee | hasMoneyFormat }} -->
  130. </div>
  131. </template>
  132. </el-table-column>
  133. <el-table-column align="left" prop="type" label="半年收费">
  134. <template slot-scope="scope">
  135. <div>
  136. <p>
  137. 团购:
  138. {{
  139. scope.row.memberFeeSetting.groupPurchaseHalfYearFee
  140. | hasMoneyFormat
  141. }}
  142. </p>
  143. <!-- <p>
  144. 零售:
  145. {{
  146. scope.row.memberFeeSetting.currentHalfYearFee | hasMoneyFormat
  147. }}
  148. </p> -->
  149. <p>
  150. 原价:
  151. {{
  152. scope.row.memberFeeSetting.originalHalfYearFee
  153. | hasMoneyFormat
  154. }}
  155. </p>
  156. </div>
  157. </template>
  158. </el-table-column>
  159. <el-table-column align="left" prop="type" label="年收费">
  160. <template slot-scope="scope">
  161. <div>
  162. <p>
  163. 团购:
  164. {{
  165. scope.row.memberFeeSetting.groupPurchaseYearFee
  166. | hasMoneyFormat
  167. }}
  168. </p>
  169. <!-- <p>
  170. 零售:
  171. {{ scope.row.memberFeeSetting.currentYearFee | hasMoneyFormat }}
  172. </p> -->
  173. <p>
  174. 原价:
  175. {{
  176. scope.row.memberFeeSetting.originalYearFee | hasMoneyFormat
  177. }}
  178. </p>
  179. </div>
  180. </template>
  181. </el-table-column>
  182. <el-table-column
  183. align="center"
  184. width="100px"
  185. prop="updateTime"
  186. label="修改时间"
  187. ></el-table-column>
  188. <el-table-column
  189. align="center"
  190. prop="operatorName"
  191. label="修改人"
  192. ></el-table-column>
  193. <el-table-column align="center" label="操作">
  194. <template slot-scope="scope">
  195. <div>
  196. <!-- memberRankSetting/add -->
  197. <auth auths="memberRankOrganizationFeeMapper/get">
  198. <el-button type="text" @click="resetFee(scope.row, 'look')"
  199. >详情</el-button
  200. >
  201. </auth>
  202. <auth :auths="'memberRankOrganizationFeeMapper/update'">
  203. <el-button type="text" @click="resetFee(scope.row, 'update')"
  204. >修改</el-button
  205. >
  206. </auth>
  207. </div>
  208. </template>
  209. </el-table-column>
  210. </el-table>
  211. <pagination
  212. save-key="memberFeeSet"
  213. :total.sync="rules.total"
  214. sync
  215. :page.sync="rules.page"
  216. :limit.sync="rules.limit"
  217. :page-sizes="rules.page_size"
  218. @pagination="getList"
  219. />
  220. </div>
  221. <emptyPage @submit="addFee" title='会员收费标准' btnTitle='新建会员收费标准' :context='context' v-else />
  222. <el-dialog
  223. :title="title"
  224. :close-on-click-modal="false"
  225. :visible.sync="branchStatus"
  226. v-if="branchStatus"
  227. default-expand-all
  228. @close="onFormClose('ruleForm')"
  229. width="730px"
  230. >
  231. <el-form :model="form" :inline="true" ref="ruleForm">
  232. <el-form-item
  233. label="所属分部"
  234. prop="organId"
  235. :rules="[{ required: true, message: '请选择分部' }]"
  236. :label-width="formLabelWidth"
  237. >
  238. <el-select
  239. :disabled="addDisabled"
  240. class="multiple"
  241. filterable
  242. style="width: 545px !important"
  243. v-model.trim="form.organId"
  244. clearable
  245. placeholder="请选择分部"
  246. >
  247. <el-option
  248. v-for="(item, index) in selects.branchs"
  249. :key="index"
  250. :label="item.name"
  251. :value="item.id"
  252. ></el-option>
  253. </el-select>
  254. </el-form-item>
  255. <el-form-item
  256. label="会员名称"
  257. prop="memberRankSettingId"
  258. :rules="[{ required: true, message: '请选择会员' }]"
  259. :label-width="formLabelWidth"
  260. >
  261. <el-select
  262. :disabled="addDisabled"
  263. class="multiple"
  264. filterable
  265. style="width: 545px !important"
  266. v-model.trim="form.memberRankSettingId"
  267. clearable
  268. placeholder="请选择会员"
  269. >
  270. <el-option
  271. v-for="(item, index) in remberList"
  272. :key="index"
  273. :label="item.name"
  274. :value="item.id"
  275. ></el-option>
  276. </el-select>
  277. </el-form-item>
  278. <!-- <el-form-item
  279. prop="groupPurchaseDayFee"
  280. label="日收费团购价"
  281. :rules="[
  282. { required: true, message: '请输入日收费团购价' },
  283. {
  284. pattern:
  285. /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  286. message: '请输入正确的金额',
  287. },
  288. ]"
  289. :label-width="formLabelWidth"
  290. >
  291. <el-input
  292. v-model="form.groupPurchaseDayFee"
  293. :disabled="addDisabled"
  294. class="feeInput"
  295. >
  296. <template slot="append">元/日</template>
  297. </el-input>
  298. </el-form-item>
  299. <el-form-item
  300. prop="currentDayFee"
  301. label="日收费零售价"
  302. :rules="[
  303. {
  304. required: true,
  305. message: '请输入日收费零售价',
  306. trigger: 'blur, change',
  307. },
  308. {
  309. pattern:
  310. /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  311. message: '请输入正确的金额',
  312. },
  313. ]"
  314. :label-width="formLabelWidth"
  315. >
  316. <el-input
  317. v-model="form.currentDayFee"
  318. :disabled="addDisabled"
  319. class="feeInput"
  320. >
  321. <template slot="append">元/日</template>
  322. </el-input>
  323. </el-form-item>
  324. <el-form-item
  325. prop="originalDayFee"
  326. label="日收费原价"
  327. :rules="[
  328. { required: true, message: '请输入日收费原价' },
  329. {
  330. pattern:
  331. /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  332. message: '请输入正确的金额',
  333. },
  334. ]"
  335. :label-width="formLabelWidth"
  336. >
  337. <el-input
  338. v-model="form.originalDayFee"
  339. :disabled="addDisabled"
  340. class="feeInput"
  341. >
  342. <template slot="append">元/日</template>
  343. </el-input>
  344. </el-form-item> -->
  345. <el-form-item
  346. prop="groupPurchaseMonthFee"
  347. label="月收费团购价"
  348. :rules="[
  349. { required: true, message: '请输入月收费团购价' },
  350. {
  351. pattern: /^[1-9][0-9]*$/,
  352. message: '请输入大于0的正整数',
  353. },
  354. { validator: validateMonth, trigger: 'blur' },
  355. ]"
  356. :label-width="formLabelWidth"
  357. >
  358. <el-input
  359. v-model="form.groupPurchaseMonthFee"
  360. :disabled="addDisabled"
  361. class="feeInput"
  362. :placeholder="monthRule"
  363. >
  364. <template slot="append">元/月</template>
  365. </el-input>
  366. </el-form-item>
  367. <!-- <el-form-item
  368. prop="currentMonthFee"
  369. label="月收费零售价"
  370. :rules="[
  371. { required: true, message: '请输入月收费零售价' },
  372. {
  373. pattern: /^[1-9][0-9]*$/,
  374. message: '请输入大于0的正整数',
  375. },
  376. { validator: validateMonth, trigger: 'blur' },
  377. ]"
  378. :label-width="formLabelWidth"
  379. >
  380. <el-input
  381. v-model="form.currentMonthFee"
  382. :disabled="addDisabled"
  383. class="feeInput"
  384. >
  385. <template slot="append">元/月</template>
  386. </el-input>
  387. </el-form-item> -->
  388. <el-form-item
  389. prop="originalMonthFee"
  390. label="月收费原价"
  391. :rules="[
  392. { required: true, message: '请输入月收费原价' },
  393. {
  394. pattern: /^[1-9][0-9]*$/,
  395. message: '请输入大于0的正整数',
  396. },
  397. { validator: validateMonth, trigger: 'blur' },
  398. ]"
  399. :label-width="formLabelWidth"
  400. >
  401. <el-input
  402. v-model="form.originalMonthFee"
  403. :disabled="addDisabled"
  404. class="feeInput"
  405. :placeholder="monthRule"
  406. >
  407. <template slot="append">元/月</template>
  408. </el-input>
  409. </el-form-item>
  410. <el-form-item
  411. prop="groupPurchaseQuarterlyFee"
  412. label="季度收费团购价"
  413. :rules="[
  414. { required: true, message: '请输入季度收费团购价' },
  415. {
  416. pattern: /^[1-9][0-9]*$/,
  417. message: '请输入大于0的正整数',
  418. },
  419. { validator: validateQuarterly, trigger: 'blur' },
  420. ]"
  421. :label-width="formLabelWidth"
  422. >
  423. <el-input
  424. v-model="form.groupPurchaseQuarterlyFee"
  425. :disabled="addDisabled"
  426. class="feeInput"
  427. :placeholder="quarterlyRule"
  428. >
  429. <template slot="append">元/季度</template>
  430. </el-input>
  431. </el-form-item>
  432. <!-- <el-form-item
  433. prop="currentQuarterlyFee"
  434. label="季度收费零售价"
  435. :rules="[
  436. { required: true, message: '请输入季度收费零售价' },
  437. {
  438. pattern: /^[1-9][0-9]*$/,
  439. message: '请输入大于0的正整数',
  440. },
  441. { validator: validateQuarterly, trigger: 'blur' },
  442. ]"
  443. :label-width="formLabelWidth"
  444. >
  445. <el-input
  446. v-model="form.currentQuarterlyFee"
  447. :disabled="addDisabled"
  448. class="feeInput"
  449. >
  450. <template slot="append">元/季度</template>
  451. </el-input>
  452. </el-form-item> -->
  453. <el-form-item
  454. prop="originalQuarterlyFee"
  455. label="季度收费原价"
  456. :rules="[
  457. { required: true, message: '请输入季度收费原价' },
  458. {
  459. pattern: /^[1-9][0-9]*$/,
  460. message: '请输入大于0的正整数',
  461. },
  462. { validator: validateQuarterly, trigger: 'blur' },
  463. ]"
  464. :label-width="formLabelWidth"
  465. >
  466. <el-input
  467. v-model="form.originalQuarterlyFee"
  468. :disabled="addDisabled"
  469. class="feeInput"
  470. :placeholder="quarterlyRule"
  471. >
  472. <template slot="append">元/季度</template>
  473. </el-input>
  474. </el-form-item>
  475. <el-form-item
  476. prop="groupPurchaseHalfYearFee"
  477. label="半年收费团购价"
  478. :rules="[
  479. { required: true, message: '请输入半年收费团购价' },
  480. {
  481. pattern: /^[1-9][0-9]*$/,
  482. message: '请输入大于0的正整数',
  483. },
  484. { validator: validateHalfYear, trigger: 'blur' },
  485. ]"
  486. :label-width="formLabelWidth"
  487. >
  488. <el-input
  489. v-model="form.groupPurchaseHalfYearFee"
  490. :disabled="addDisabled"
  491. class="feeInput"
  492. :placeholder="halfYearRule"
  493. >
  494. <template slot="append">元/半年</template>
  495. </el-input>
  496. </el-form-item>
  497. <!-- <el-form-item
  498. prop="currentHalfYearFee"
  499. label="半年收费零售价"
  500. :rules="[
  501. { required: true, message: '请输入半年收费零售价' },
  502. {
  503. pattern: /^[1-9][0-9]*$/,
  504. message: '请输入大于0的正整数',
  505. },
  506. { validator: validateHalfYear, trigger: 'blur' },
  507. ]"
  508. :label-width="formLabelWidth"
  509. >
  510. <el-input
  511. v-model="form.currentHalfYearFee"
  512. :disabled="addDisabled"
  513. class="feeInput"
  514. >
  515. <template slot="append">元/半年</template>
  516. </el-input>
  517. </el-form-item> -->
  518. <el-form-item
  519. prop="originalHalfYearFee"
  520. label="半年收费原价"
  521. :rules="[
  522. { required: true, message: '请输入半年收费原价' },
  523. {
  524. pattern: /^[1-9][0-9]*$/,
  525. message: '请输入大于0的正整数',
  526. },
  527. { validator: validateHalfYear, trigger: 'blur' },
  528. ]"
  529. :label-width="formLabelWidth"
  530. >
  531. <el-input
  532. v-model="form.originalHalfYearFee"
  533. :disabled="addDisabled"
  534. class="feeInput"
  535. :placeholder="halfYearRule"
  536. >
  537. <template slot="append">元/半年</template>
  538. </el-input>
  539. </el-form-item>
  540. <el-form-item
  541. prop="groupPurchaseYearFee"
  542. label="年收费团购价"
  543. :rules="[
  544. { required: true, message: '请输入年收费团购价' },
  545. {
  546. pattern: /^[1-9][0-9]*$/,
  547. message: '请输入大于0的正整数',
  548. },
  549. { validator: validateYear, trigger: 'blur' },
  550. ]"
  551. :label-width="formLabelWidth"
  552. >
  553. <el-input
  554. v-model="form.groupPurchaseYearFee"
  555. :disabled="addDisabled"
  556. class="feeInput"
  557. :placeholder="yearRule"
  558. >
  559. <template slot="append">元/年</template>
  560. </el-input>
  561. </el-form-item>
  562. <!-- <el-form-item
  563. prop="currentYearFee"
  564. label="年收费零售价"
  565. :rules="[
  566. { required: true, message: '请输入年收费零售价' },
  567. {
  568. pattern: /^[1-9][0-9]*$/,
  569. message: '请输入大于0的正整数',
  570. },
  571. { validator: validateYear, trigger: 'blur' },
  572. ]"
  573. :label-width="formLabelWidth"
  574. >
  575. <el-input
  576. v-model="form.currentYearFee"
  577. :disabled="addDisabled"
  578. class="feeInput"
  579. >
  580. <template slot="append">元/年</template>
  581. </el-input>
  582. </el-form-item> -->
  583. <el-form-item
  584. prop="originalYearFee"
  585. label="年收费原价"
  586. :rules="[
  587. { required: true, message: '请输入年收费原价' },
  588. {
  589. pattern: /^[1-9][0-9]*$/,
  590. message: '请输入大于0的正整数',
  591. },
  592. { validator: validateYear, trigger: 'blur' },
  593. ]"
  594. :label-width="formLabelWidth"
  595. >
  596. <el-input
  597. v-model="form.originalYearFee"
  598. :disabled="addDisabled"
  599. class="feeInput"
  600. :placeholder="yearRule"
  601. >
  602. <template slot="append">元/年</template>
  603. </el-input>
  604. </el-form-item>
  605. </el-form>
  606. <span slot="footer" class="dialog-footer">
  607. <el-button v-if="!addDisabled" @click="branchStatus = false"
  608. >取 消</el-button
  609. >
  610. <el-button @click="onSubmit" type="primary">确 定</el-button>
  611. </span>
  612. </el-dialog>
  613. </div>
  614. </template>
  615. <script>
  616. import numeral from "numeral";
  617. import {
  618. getAllmemberRank,
  619. addMemberOrganizationFeeMapper,
  620. getmemberRankOrganizationFeeMapper,
  621. getmemberOrganizationFeeMapperkDetail,
  622. resetMemberOrganizationFeeMapper,
  623. } from "./api";
  624. import { sysConfigList } from "@/api/generalSettings";
  625. import pagination from "@/components/Pagination/index";
  626. import emptyPage from '@/components/emptyPage'
  627. // numeral(this.list.form[index].courseTotalMinuties * this.list.form[index].unitPrice).format('0,0.00')
  628. export default {
  629. components: { pagination,emptyPage },
  630. name: "memberFeeSet",
  631. data() {
  632. return {
  633. searchForm: {
  634. search: null,
  635. organId: null,
  636. },
  637. rules: {
  638. // 分页规则
  639. limit: 10, // 限制显示条数
  640. page: 1, // 当前页
  641. total: 0, // 总条数
  642. page_size: [10, 20, 40, 50], // 选择限制显示条数
  643. },
  644. tableList: [],
  645. addDisabled: false,
  646. title: "新增收费标准",
  647. formLabelWidth: "120px",
  648. form: {
  649. currentDayFee: "",
  650. currentHalfYearFee: "",
  651. currentMonthFee: "",
  652. currentYearFee: "",
  653. originalDayFee: "",
  654. originalHalfYearFee: "",
  655. originalMonthFee: "",
  656. originalYearFee: "",
  657. groupPurchaseDayFee: "",
  658. groupPurchaseHalfYearFee: "",
  659. groupPurchaseMonthFee: "",
  660. groupPurchaseQuarterlyFee: "",
  661. groupPurchaseYearFee: "",
  662. organId: "",
  663. memberRankSettingId: "",
  664. },
  665. branchStatus: false,
  666. remberList: [],
  667. rulesForm: {
  668. minMonthFee: null,
  669. maxMonthFee: null,
  670. minQuarterlyFee: null,
  671. maxQuarterlyFee: null,
  672. minHalfYearFee: null,
  673. maxHalfYearFee: null,
  674. minYearFee: null,
  675. maxYearFee: null,
  676. },
  677. context:'会员收费标准即为团练宝收费标准,可根据各分部的实际情况为分部制定不同的团练宝标准售价,设置完成后,各分部为学员创建团练宝缴费时默认以此处设置的价格向学员收费。'
  678. };
  679. },
  680. async mounted() {
  681. await this.$store.dispatch("setBranchs");
  682. // 获取所有的会员
  683. try {
  684. const res = await getAllmemberRank();
  685. this.remberList = res.data;
  686. } catch {}
  687. this.getList();
  688. this.getRules();
  689. },
  690. methods: {
  691. async getRules() {
  692. try {
  693. const res = await sysConfigList({ group: "DEFAULT" });
  694. const paramName = "cloud_price_range";
  695. res.data.forEach((item) => {
  696. if (item.paramName == paramName) {
  697. const itemValue = item.paranValue
  698. ? JSON.parse(item.paranValue)
  699. : null;
  700. if (itemValue) {
  701. this.rulesForm = itemValue;
  702. }
  703. console.log(this.rulesForm);
  704. // this.$set(this.form, item.id, item.paranValue);
  705. }
  706. // this.form[item.paramName] = item.paranValue
  707. // this.$set(this.form, item.id, item.paranValue);
  708. });
  709. // this.$forceUpdate()
  710. // console.log(this.form);
  711. } catch (e) {
  712. console.log(e);
  713. }
  714. },
  715. search() {
  716. this.rules.page = 1;
  717. this.getList();
  718. },
  719. onReSet() {
  720. this.$refs.searchForm.resetFields();
  721. this.search();
  722. },
  723. async getList() {
  724. try {
  725. const res = await getmemberRankOrganizationFeeMapper({
  726. ...this.searchForm,
  727. rows: this.rules.limit,
  728. page: this.rules.page,
  729. });
  730. this.tableList = res.data.rows;
  731. this.rules.total = res.data.total;
  732. } catch {}
  733. },
  734. onFormClose(ruleForm) {
  735. (this.form = {
  736. currentDayFee: "",
  737. currentHalfYearFee: "",
  738. currentMonthFee: "",
  739. currentYearFee: "",
  740. originalDayFee: "",
  741. originalHalfYearFee: "",
  742. originalMonthFee: "",
  743. originalYearFee: "",
  744. organId: "",
  745. memberRankSettingId: "",
  746. }),
  747. this.$refs[ruleForm].resetFields();
  748. },
  749. addFee() {
  750. this.title = "新增收费标准";
  751. this.addDisabled = false;
  752. this.pageType = "create";
  753. this.branchStatus = true;
  754. },
  755. resetFee(row, type) {
  756. if (type == "update") {
  757. this.title = "修改收费标准";
  758. this.pageType = "update";
  759. this.addDisabled = false;
  760. } else {
  761. this.addDisabled = true;
  762. this.title = "查看收费标准";
  763. this.pageType = "look";
  764. }
  765. let obj = {};
  766. for (let key in row.memberFeeSetting) {
  767. if ((row.memberFeeSetting, key, row.memberFeeSetting[key])) {
  768. obj[key] = row.memberFeeSetting[key];
  769. }
  770. }
  771. this.form = {
  772. ...obj,
  773. organId: row.organId,
  774. memberRankSettingId: row.memberRankSettingId,
  775. outId: row.id,
  776. };
  777. this.branchStatus = true;
  778. },
  779. onSubmit() {
  780. console.log(this.pageType);
  781. if (this.pageType == "look") {
  782. this.branchStatus = false;
  783. return;
  784. }
  785. this.$refs.ruleForm.validate(async (flag) => {
  786. if (flag) {
  787. if (this.pageType == "update") {
  788. try {
  789. const res = await resetMemberOrganizationFeeMapper({
  790. memberFeeSetting: { ...this.form },
  791. organId: this.form.organId,
  792. memberRankSettingId: this.form.memberRankSettingId,
  793. id: this.form.outId,
  794. });
  795. this.$message.success("修改成功");
  796. this.branchStatus = false;
  797. this.getList();
  798. } catch (e) {
  799. console.log(e);
  800. }
  801. } else if (this.pageType == "create") {
  802. try {
  803. const res = await addMemberOrganizationFeeMapper({
  804. memberFeeSetting: { ...this.form },
  805. organId: this.form.organId,
  806. memberRankSettingId: this.form.memberRankSettingId,
  807. });
  808. this.$message.success("新建会员成功");
  809. this.branchStatus = false;
  810. this.getList();
  811. } catch {}
  812. }
  813. }
  814. });
  815. },
  816. validateMonth(rule, value, callback) {
  817. const one = Number(value);
  818. const min = Number(this.rulesForm.minMonthFee);
  819. const max = Number(this.rulesForm.maxMonthFee);
  820. if (one >= min && one <= max) {
  821. return callback();
  822. }
  823. return callback(new Error(`月度团练宝定价应在${min}-${max}之间`));
  824. },
  825. validateQuarterly(rule, value, callback) {
  826. const one = Number(value);
  827. const min = Number(this.rulesForm.minQuarterlyFee);
  828. const max = Number(this.rulesForm.maxQuarterlyFee);
  829. if (one >= min && one <= max) {
  830. return callback();
  831. }
  832. return callback(new Error(`季度团练宝定价应在${min}-${max}之间`));
  833. },
  834. validateHalfYear(rule, value, callback) {
  835. const one = Number(value);
  836. const min = Number(this.rulesForm.minHalfYearFee);
  837. const max = Number(this.rulesForm.maxHalfYearFee);
  838. if (one >= min && one <= max) {
  839. return callback();
  840. }
  841. return callback(new Error(`半年团练宝定价应在${min}-${max}之间`));
  842. },
  843. validateYear(rule, value, callback) {
  844. const one = Number(value);
  845. const min = Number(this.rulesForm.minYearFee);
  846. const max = Number(this.rulesForm.maxYearFee);
  847. if (one >= min && one <= max) {
  848. return callback();
  849. }
  850. return callback(new Error(`年度团练宝定价应在${min}-${max}之间`));
  851. },
  852. },
  853. watch: {
  854. branchStatus(val) {
  855. if (!val) {
  856. this.onFormClose("ruleForm");
  857. }
  858. },
  859. },
  860. computed: {
  861. monthRule() {
  862. return `${this.rulesForm.minMonthFee}-${this.rulesForm.maxMonthFee}`;
  863. },
  864. quarterlyRule() {
  865. return `${this.rulesForm.minQuarterlyFee}-${this.rulesForm.maxQuarterlyFee}`;
  866. },
  867. halfYearRule() {
  868. return `${this.rulesForm.minHalfYearFee}-${this.rulesForm.maxHalfYearFee}`;
  869. },
  870. yearRule() {
  871. return `${this.rulesForm.minYearFee}-${this.rulesForm.maxYearFee}`;
  872. },
  873. },
  874. };
  875. </script>
  876. <style lang="scss" scoped>
  877. /deep/.el-input-group__append {
  878. width: 88px;
  879. }
  880. .feeInput {
  881. /deep/.el-input__inner {
  882. width: 120px !important;
  883. }
  884. }
  885. </style>