页面
组件
表单
组件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <Forms ref="form2" @submit="submit" :rules="rules2" @patient_fn="patient_fn" label-align="right" :formData="formData2" :formOrder="formOrder2" ></Forms> <script> export default { data() { return { formData1: { where_hospital: "", dr_name: "", where_department_s: "", appointment_type: "a", medical_consultation: 0, }, formOrder1: [ { model: "where_hospital", type: "input", label: "就诊诊所", disabled: true, }, ], }; }, }; </script>
|
校验
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| { rules2: { patient_name: [{ required: true, message: '请输入患者姓名', trigger: 'change' }], }, }
async validateFn(obj = {}) { const self = this let { ref, ref_name = '', form_name = '' } = obj if (!ref_name && !ref) { return false } const asyncFn = async () => { const p = await new Promise(resolve => { let formData = form_name ? self[form_name] : null let pass = false ref = ref || self.$refs[ref_name].$refs.form if (formData) formData.err_msg = '' this.$nextTick(() => { ref.validate((valid, obj) => { console.log(valid, obj) if (valid) { pass = true } else { let o = Object.values(obj)[0][0] || {} let err_msg = o.message || '校验失败' if (formData) formData.err_msg = err_msg self.$message.error(err_msg) resolve(false) } }) if (!pass) { resolve(false) } else { resolve(true) } }) }) return p } return await asyncFn() },
clearValidForm(obj) { let { form_name = '', ref_name = '', model = '', models = null, ref = '' } = obj if (!form_name || !model) { return } this.$nextTick(() => { ref = ref || this.$refs[ref_name].$refs.form let fields = ref.fields let obj = models || { [model]: '' } for (let prop in obj) { if (fields) { for (let i = 0; i < fields.length; i++) { if (fields[i].prop === prop) { fields[i].clearValidate() } if (model === 'clear_all') { fields[i].clearValidate() } } } } }) },
|
表格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| <table ref="multipleTable" :TabList="TabList" :ContentList="ContentList" :loading="loading" height="100%" > <div slot="pingjun_header">我是头部</div> <template #goods_info="scope"> {{scope.$index}} {{scope.row.name}} </template> </table>
<script> export default { data() { return { TabList: [ { label: "访问时间", prop: "访问时间", type: "formatText", format: (index, row) => { return row.create_time ? setDate(row.create_time) : "---"; }, }, { type: "slot", scope: true, label: "商品信息", prop: "goods_info", width: 250, }, { label: "平均来访次数", prop: "pingjun", slot_header: "pingjun_header", type: "formatText", format: (index, v) => (v.uv ? formatFloat(v.pv / v.uv, 2) : "0"), }, ], ContentList: [ { name: "123456", }, ], }; }, }; </script>
|
2.8.6.4
赠品管理
商品 ===> 商品管理 ===> 赠品管理

字段
增加 product_gift_deploy
配置表
增加 product_gift
数据表
增加 product_gift_store
赠品门店关联表
商品表 commodity
增加 is_gift 字段 有在product_gift
表中为 true
original_order
,
goods_record
,
refunds_order
,
order_library
表商品增加gift_product
字段
标识已使用赠品管理管理的商品
商品销售库存增加 minusGiftStock
方法
路径/libs/utils/goods
定时器
统计方法
@common/statistics.js
统计门店每天数据销售 dayStat
数据表 day_stat
统计门店每月的数据 monthStat
数据表 month_stat
@common/goods_stat.js
统计销售明细 goods_stat
同步
方法
deliver_order_pull_update_new
数据表
purchase_order
purchasedt
deliver_accept_order
deliver_accept_dt