12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import {createInjectDefaultClosure} from "@/utils";
- import {confirmAsync} from "@/utils/uni-helper";
- export default {
- // Use this way, computed properties can keep `REACTIVE` availability.
- inject: {
- // data inject
- 'getPrevData': createInjectDefaultClosure({}),
- 'getFilter': createInjectDefaultClosure({}),
- 'getShortcut': createInjectDefaultClosure([]),
- 'getConfig': createInjectDefaultClosure({}),
- 'getCart': createInjectDefaultClosure([]),
- 'getCommit': createInjectDefaultClosure({}),
- // methods inject
- 'handleCartAdd': createInjectDefaultClosure(true),
- 'handleCartRemove': createInjectDefaultClosure(true),
- 'handleCartClear': createInjectDefaultClosure(true),
- 'handleCommit': createInjectDefaultClosure(true)
- },
- computed: {
- pageData() {
- return this.getPrevData()
- },
- filter() {
- return this.getFilter()
- },
- shortcut() {
- return this.getShortcut()
- },
- config() {
- return this.getConfig()
- },
- cart() {
- return this.getCart()
- },
- commit() {
- return this.getCommit()
- }
- },
- methods: {
- async couldChangeFilter(op, confirmedAction) {
- let filterKeys = op.filterKey || op?.id?.split('_')[0]
- if (!filterKeys && op.options?.length) filterKeys = op.options.map(o => o.filterKey)
- if (filterKeys) filterKeys = [].concat(filterKeys)
- if (!filterKeys) throw new Error('must find filter keys here')
- // 这几个筛选条件会影响专业,要改变必须清空志愿表
- const confirmKeys = this.config.confirmChangeFilterKeys || []
- if (this.cart.length && filterKeys.some(k => confirmKeys.includes(k))) {
- await confirmAsync('更改筛选条件需要清空当前志愿表\r\n确认清空?!')
- this.handleCartClear()
- if (typeof confirmedAction === 'function') confirmedAction()
- }
- }
- }
- }
|