123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- // pages/interaction/interaction.js
- const app = getApp(),
- {
- globalData: {
- util: {
- regeneratorRuntime,
- api: {
- departments,
- matters,
- interactionSave,
- guide
- },
- showTip,
- request: {
- post_auth,
- get
- },
- getUserInfo,
- goSuccess,
- get_global_param,
- verify: {
- isPhone,
- form_verify
- },
- pickerChange
- }
- }
- } = app,
- t = {
- name: '请选择'
- },
- init = {
- dep_index: 0,
- matter_index: 0,
- title: '',
- content: '',
- name: '',
- consultantPhone: ''
- }, verify = {
- consultantName: "请输入姓名",
- consultantPhone: x => x ? !isPhone(x) && '您输入的联系方式格式不正确' : '请输入联系方式',
- content: (x, { type }) => !x && `请输入${type == 1 ? '投诉' : '咨询'}内容`,
- deptUnid: (x, { type }) => !x && `请选择${type == 1 ? '投诉' : '咨询'}部门`,
- serviceUnid: (x, { type }) => !x && `请选择${type == 1 ? '投诉' : '咨询'}事项`,
- title: (x, { type }) => !x && `请输入${type == 1 ? '投诉' : '咨询'}主题`
- };
- Page({
- data: Object.assign({
- dep_list: [t],
- matter_list: [t],
- tab: ['咨询', '投诉']
- }, init),
- async _pickerChange(_index, value) {
- this.setData({
- [_index]: value | 0
- })
- if (_index != 'dep_index') return
- let deptUnid = this.data.dep_list[value].id, matter_list = [t]
- if (deptUnid) {
- let list = await get(matters, { deptUnid })
- if (!list._err)
- matter_list = [t, ...list.map(({ UNID: id, SERVICE_NAME: name }) => ({ id, name }))]
- }
- this.setData({
- matter_index: 0,
- matter_list
- })
- },
- async formSubmit({ detail: { value } }) {
- const msg = form_verify(value, verify)
- if (msg) return showTip(msg)
- const { _err } = await post_auth(interactionSave, value, { loading: true, loadingMsg: '信息提交中。。。' });
- if (_err) return _err.status && showTip('提交失败')
- await goSuccess('interaction')
- this.setData(init)
- },
- async onLoad() {
- const list = await get(departments)
- this.setData({
- dep_list: list._err ? [t] : [t, ...list.map(({ deptUnid: id, deptName: name }) => ({ id, name }))]
- })
- },
- async onShow() {
- const { unid, tab_index = 0 } = get_global_param(), { name = '', phone = '' } = await getUserInfo()
- if (unid) {
- const { preService: { deptUnid, deptName, serviceName } = {}, } = await get(guide, { unid })
- this.setData({
- serviceUnid: unid,
- deptUnid,
- deptName,
- serviceName
- })
- }
- this.setData(Object.assign({}, init, {
- flag: !!unid,
- name,
- phone,
- tab_index
- }))
- },
- pickerChange,
- // tab切换
- tab({ currentTarget: { dataset: { index: tab_index } } }) {
- this.setData({
- tab_index
- })
- }
- })
|