// commpents/myprofile/index.js import Toast from '@vant/weapp/toast/toast'; import { API } from './../../utils/network/api' import { FileUtil } from './../../utils/fileutil' const api = new API() const app = getApp() Component({ /** * 组件的属性列表 */ properties: { indentity: { //是否为认证页面 type: Boolean, value: true } }, data: { navbarData: { showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示 title: '医师身份认证', //导航栏 中间的标题 }, height: app.globalData.height, //选项卡 stickyProps: { zIndex: 2, }, realname:"", idcard:"", avatar: "https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/default_photo.png", is_avatar: false, city_show: false, keshi_show: false, yiyuan_show: false, zhuanchang_show: false, zhiye_show: false, zige_show: false, zhicheng_show: false, zhicheng_img_show: false, next_btn_txt: "下一步", next_btn_disabled: false, office_phone: "", keshi_note: "请选择科室", keshi_columns: [], select_keshi_id: "", select_keshi_index: "", custom_keshi: "", zhicheng_note: "请选择职称", zhicheng_columns: [ { text: "执业医师", value: 1 }, { text: "主治医师", value: 2 }, { text: "副主任医师", value: 3 }, { text: "主任医师", value: 4 } ], select_zhicheng_id: "", select_zhicheng_index: "", select_yiyuan_index: "", yiyuan_columns: [], zhuanchang_columns: [], zhuanchang_selected_columns: [], select_province_id: "", select_city_id: "", select_county_id: "", city_note: "请选择城市", yiyuan_note: "请选择医院", select_yiyuan_id: "", area_sub_titles: ["省份","市区","区县"], areaList: [], textarea_jianjie: "", textarea_shanchang: "", zhiye_file_list:[], zige_file_list:[], zhicheng_file_list:[], doctorauthiden_data_ready: false, basicdepartment_data_ready: false, areaprovince_data_ready: false, iden_auth_status: 0, iden_auth_disabled: 0, iden_auth_status_txt: "未认证", avatar_reason: "", department_custom_mobile_reason: "", brief_introduction_reason: "", be_good_at_reason: "", license_cert_reason: "", qualification_cert_reason: "", work_cert_reason: "", department_custom_name_reason: '', zhuanchang_note: '请选择专长', }, options: { addGlobalClass: true, styleIsolation: 'apply-shared' }, lifetimes: { attached(){ console.log("myprofile attached") let _this = this; //获得医师身份认证 api.getDoctorAuthIden({source: this.data.indentity?1:2}).then(response => { console.log("getDoctorAuthIden: ",response); this.setData({ doctorauthiden_data_ready: true, textarea_jianjie: response.data.brief_introduction, textarea_shanchang: response.data.be_good_at, custom_keshi: response.data.department_custom_name, office_phone: response.data.department_custom_mobile, select_keshi_id: response.data.department_custom_id, select_zhicheng_id: response.data.doctor_title, select_province_id: response.data.hospital.province_id, select_city_id: response.data.hospital.city_id, select_county_id: response.data.hospital.county_id, select_yiyuan_id: response.data.hospital.hospital_id, hospital: response.data.hospital, iden_auth_status: response.data.iden_auth_status, avatar_reason: response.data.avatar_reason, department_custom_mobile_reason: response.data.department_custom_mobile_reason, brief_introduction_reason: response.data.brief_introduction_reason, be_good_at_reason: response.data.be_good_at_reason, license_cert_reason: response.data.license_cert_reason, qualification_cert_reason: response.data.qualification_cert_reason, work_cert_reason: response.data.work_cert_reason, department_custom_name_reason: response.data.department_custom_name_reason, }); let iden_auth_status = response.data.iden_auth_status; console.log("iden_auth_status: ",iden_auth_status) let iden_auth_status_txt = iden_auth_status == 0?'请完善资料后提交':iden_auth_status == 1?'认证通过': iden_auth_status==2?'资料已提交,审核中':iden_auth_status==3?'认证失败':'未认证'; let iden_auth_disabled = iden_auth_status == 0?false:iden_auth_status == 1?true: iden_auth_status==2?true:iden_auth_status==3?false:true; console.log("iden_auth_disabled: ",iden_auth_disabled) this.setData({ iden_auth_status_txt: iden_auth_status_txt, iden_auth_disabled: iden_auth_disabled }) if(response.data.license_cert){ let img_list = response.data.license_cert.map(item => { let img = {}; img.url = item; img.isImg = true; return img; }) this.setData({ zhiye_file_list: img_list }) } if(response.data.qualification_cert){ let img_list = response.data.qualification_cert.map(item => { let img = {}; img.url = item; img.isImg = true; return img; }) this.setData({ zige_file_list: img_list }) } if(response.data.work_cert){ let img_list = response.data.work_cert.map(item => { let img = {}; img.url = item; img.isImg = true; return img; }) this.setData({ zhicheng_file_list: img_list }) } let avatar = response.data.avatar; if(avatar){ this.setData({ "avatar": avatar, is_avatar: true, }) } }).catch(errors => {console.error(errors);}) //加载省份列表 api.getAreaProvince().then(response => { console.log(response); const list = _this.formatArea(response, -1, true); _this.setData({ areaprovince_data_ready: true, areaList: list }) }).catch(errors => {console.error(errors); }) //加载科室列表 api.getBasicDepartment().then(response => { console.log(response); const list = _this.formatKeShi(response); _this.setData({ basicdepartment_data_ready: true, keshi_columns: list }) }).catch(errors => {console.error(errors); }) //加载专长列表 api.getDoctorExpertise().then(response => { console.log(response); _this.setData({ zhuanchang_columns: response.data }) }).then(()=>{ let index = this.data.zhuanchang_columns.findIndex(item => { return item.is_selected == 1 }) if(index) { this.setData({ zhuanchang_note: "" }) } }).catch(errors => {console.error(errors); }) let keshi_huixian = false; let zhicheng_huixian = false; let area_huixian = false; //执行回显 let huixian_try_count = 0; let data_replay = setInterval(() => { try { console.log("执行回显。。。", huixian_try_count); //回显科室 if(_this.data.doctorauthiden_data_ready && _this.data.basicdepartment_data_ready){ let index = _this.data.keshi_columns.findIndex(item => { console.log("value: ",item.value); console.log("select_keshi_id: ", _this.data.select_keshi_id); return item.value == _this.data.select_keshi_id }) console.log("科室:", index) let keshi_note = _this.data.keshi_columns[index].text; console.log("科室 keshi_note:", keshi_note); if(index != undefined){ _this.setData({ select_keshi_index: index, keshi_note: keshi_note }) } keshi_huixian = true; } //回显职称 if(_this.data.doctorauthiden_data_ready){ let index = _this.data.zhicheng_columns.findIndex(item => { return item.value == _this.data.select_zhicheng_id }) _this.setData({ select_zhicheng_index: index, zhicheng_note: _this.data.zhicheng_columns[index].text }) zhicheng_huixian = true; } //回显省市区 if(_this.data.doctorauthiden_data_ready && _this.data.areaprovince_data_ready){ let select_province_id = _this.data.select_province_id; let select_city_id = _this.data.select_city_id; let select_county_id = _this.data.select_county_id; let select_yiyuan_id = _this.data.select_yiyuan_id; api.getAreaCity({area_id: select_province_id}).then(response => {// 请求市区列表 let _index = _this.data.areaList.findIndex(item => item.value == select_province_id); const list = _this.formatArea(response, _index, true); const _city = "areaList[" + _index + "].children"; console.log("_city: ", _city); _this.setData({ [_city]: list, }) }).then(e =>{ api.getAreaCounty({area_id: select_city_id}).then(response => {// 请求市区列表 let _index = _this.data.areaList.findIndex(item => item.value == select_province_id); console.log("getAreaCounty: ", _index) let c_index = _this.data.areaList[_index].children.findIndex(item => item.value == select_city_id); console.log("children: ", _index) let p_index = _this.data.areaList[_index].children[c_index].index; const list = _this.formatArea(response, _index, false); const _county = "areaList[" + _index + "].children[" +p_index+ "].children"; _this.setData({ [_county]: list, }) }).then(e => { let params = { province_id: _this.data.select_province_id, city_id: _this.data.select_city_id, county_id: _this.data.select_county_id, } api.getBasicHospital(params).then(response => {// 请求医院列表 _this.setData({ yiyuan_columns: _this.formatYiYuan(response), city_note: _this.data.hospital.province + "/" + _this.data.hospital.city + "/" + _this.data.hospital.county }) setTimeout(() => { let index = _this.data.yiyuan_columns.findIndex(item => { return item.value == _this.data.select_yiyuan_id }) _this.setData({ select_yiyuan_index: index, yiyuan_note: _this.data.yiyuan_columns[index].text }) }, 100); }).catch(errors => {console.error(errors); }) }).catch(errors => {console.error(errors); }) }).catch(errors => {console.error(errors); }) area_huixian = true; } } catch (error) { console.error(error) } huixian_try_count = huixian_try_count + 1; //都回显成功后,清除计时器 console.log("keshi_huixian: ", keshi_huixian) console.log("zhicheng_huixian: ", zhicheng_huixian) console.log("area_huixian: ", area_huixian) if((keshi_huixian && zhicheng_huixian && area_huixian) || huixian_try_count > 50){ clearInterval(data_replay); } console.log("计时器"); }, 500); }, }, methods: { hospitalSearch(e){ console.log(e.detail) }, hospitalSearchChange(e){ console.log(e.detail); let params = { hospital_name: e.detail.trim(), province_id: this.data.select_province_id, city_id: this.data.select_city_id, county_id: this.data.select_county_id, } api.getBasicHospital(params).then(response => {// 请求医院列表】 this.setData({ yiyuan_columns: this.formatYiYuan(response), yiyuan_show: true }) }).catch(errors => {console.error(errors); }) }, onCityShow(e) { console.log("onCityShow"); this.setData({ city_show: true }); }, onChangeCity(e) { this.setData({ select_county_id: "", select_yiyuan_id: "" }) console.log("onChangeCity"); const { selectedOptions } = e.detail; console.log(e.detail) let area = selectedOptions[selectedOptions.length-1]; if(!area){ area = selectedOptions[selectedOptions.length-2]; } const type = area.type; const value = area.value; const index = area.index; const p_index = area.p_index; if(type == 2){//省份 api.getAreaCity({area_id: value}).then(response => {// 请求市区列表 const list = this.formatArea(response, index, true); const _city = "areaList[" + index + "].children"; this.setData({ [_city]: list, select_province_id: value }) }).catch(errors => {console.error(errors); }) } if(type == 3){//市区 api.getAreaCounty({area_id: value}).then(response => {// 请求市区列表 const list = this.formatArea(response, index, false); const _county = "areaList[" + p_index + "].children[" +index+ "].children"; this.setData({ [_county]: list, select_city_id: value }) }).catch(errors => {console.error(errors); }) } console.log("type: " + type); if(type == 4){//区县 this.setData({ select_county_id: value, }); let params = { province_id: this.data.select_province_id, city_id: this.data.select_city_id, county_id: this.data.select_county_id, } api.getBasicHospital(params).then(response => {// 请求医院列表】 this.setData({ yiyuan_columns: this.formatYiYuan(response), city_show: false, city_note: this.getCityNote(selectedOptions), yiyuan_show: true }) }).catch(errors => {console.error(errors); }) }else{ this.setData({ city_show: true }) } }, getCityNote(selectedOptions){ let txt = []; selectedOptions.forEach(item => { if(item){ txt.push(item.label); } }) return txt.join("/"); }, formatArea(response, p_index, has_children){ var list = [] let index = 0; response.data.forEach(data => { let area = {}; area.index = index++; area.p_index = p_index; area.type = data.area_type; area.label = data.area_name; area.value = data.area_id; if(has_children){ area.children = []; } list.push(area) }); return list; }, formatYiYuan(response){ let list = []; response.data.forEach(data => { let hospital = {}; hospital.text = data.hospital_name; hospital.value = data.hospital_id; list.push(hospital) }); return list; }, formatKeShi(response){ let list = []; response.data.forEach(item => { let data = {}; data.text = item.department_custom_name; data.value = item.department_custom_id; list.push(data) }); return list; }, formatZhuanChang(response){ let list = []; response.data.forEach(item => { let data = {}; data.text = item.expertise_name; data.value = item.expertise_id; list.push(data) }); return list; }, onYiYuanShow(e) { console.log("onYiYuanShow"); let select_province_id = this.data.select_province_id; let select_city_id = this.data.select_city_id; let select_county_id = this.data.select_county_id; if(select_province_id && select_city_id && select_county_id){ this.setData({ yiyuan_show: true }); }else{ wx.showToast({ title: '请先选择城市', icon: "error" }) } }, onYiYuanClose(e) { console.log("onYiYuanClose"); this.setData({ yiyuan_show: false }); }, onYiYuanCancel(event) { console.log("onYiYuanCancel"); const { picker, value, index } = event.detail; Toast(`当前值:${value}, 当前索引:${index}`); this.setData({ yiyuan_show: false }); }, onYiYuanConfirm(event) { console.log("onYiYuanConfirm"); const { picker, value, index } = event.detail; console.log(event.detail); if(value.value){ this.setData({ yiyuan_show: false, select_yiyuan_id: `${value.value}`, yiyuan_note: `${value.text}` }); }else{ wx.showToast({ title: '请先选择医院', icon: "error" }) } }, onYiYuanChange(event) { console.log("onYiYuanChange"); const { picker, value, index } = event.detail; Toast(`当前值:${value}, 当前索引:${index}`); }, onKeshiShow(e) { console.log("onKeshiShow"); this.setData({ keshi_show: true }); }, onKeshiCancel(event) { console.log("onKeshiCancel"); const { picker, value, index } = event.detail; Toast(`当前值:${value}, 当前索引:${index}`); this.setData({ keshi_show: false }); }, onKeshiConfirm(event) { console.log("onKeshiConfirm"); const { picker, value, index } = event.detail; Toast(`当前值:${value}, 当前索引:${index}`); this.setData({ keshi_show: false, select_keshi_id: `${value.value}`, keshi_note: `${value.text}`, }); }, onKeshiChange(event) { console.log("onKeshiChange"); }, onKeshiClose(e) { console.log("onKeshiClose"); this.setData({ keshi_show: false }); }, onZhiChengShow(e) { console.log("onKeshiShow"); this.setData({ zhicheng_show: true }); }, onZhiChengCancel(event) { console.log("onKeshiCancel"); const { picker, value, index } = event.detail; Toast(`当前值:${value}, 当前索引:${index}`); this.setData({ zhicheng_show: false }); }, onZhiChengConfirm(event) { console.log("onZhiChengConfirm"); const { picker, value, index } = event.detail; Toast(`当前值:${value}, 当前索引:${index}`); this.setData({ zhicheng_show: false, select_zhicheng_id: `${value.value}`, zhicheng_note: `${value.text}`, }); }, onZhiChengChange(event) { console.log("onZhiChengChange"); }, onZhiChengClose(e) { console.log("onZhiChengClose"); this.setData({ zhicheng_show: false }); }, onZhuanChangShow(){ this.setData({ zhuanchang_show: true }); }, onZhuanChangVisibleChange(e) { this.setData({ zhuanchang_show: e.detail.visible, }); }, onshowJianJieNote(e){ e.detail // 自定义组件触发事件时提供的 detail 对象 console.log("onshowJianJieNote"); }, onshowShanChangNote(e){ e.detail // 自定义组件触发事件时提供的 detail 对象 console.log("onshowShanChangNote"); }, onshowZhiYeNote(e){ e.detail // 自定义组件触发事件时提供的 detail 对象 console.log("onshowZhiYeNote"); this.setData({ zhiye_show: true }); }, onZhiYeClose(){ console.log("onZhiYeClose"); this.setData({ zhiye_show: false }); }, onshowZiGeNote(e){ e.detail // 自定义组件触发事件时提供的 detail 对象 console.log("onshowZiGeNote"); this.setData({ zige_show: true }); }, onZiGeClose(){ console.log("onZhiYeClose"); this.setData({ zige_show: false }); }, onshowZhiChengImgNote(e){ e.detail // 自定义组件触发事件时提供的 detail 对象 console.log("onshowZhiChengNote"); this.setData({ zhicheng_img_show: true }); }, onZhiChengImgClose(){ console.log("onZhiChengClose"); this.setData({ zhicheng_img_show: false }); }, onCustomKeshiChange(){ this.setData({ department_custom_name_reason: "" }) }, getTextAreaVal(e){ console.log("myindex: ", e);//textarea_jianjie let textarea_name = e.currentTarget.dataset.textarea_name; if(textarea_name == "textarea_jianjie"){ this.setData({ brief_introduction_reason: "" }) } if(textarea_name == "textarea_shanchang"){ this.setData({ be_good_at_reason: "" }) } let reason_name = textarea_name+"_reason"; this.setData({ [textarea_name]: e.detail.value, }) }, select_zhuanchang(e){ console.log(e); let count = 0 this.data.zhuanchang_columns.forEach(item => { if(item.is_selected == 1){ count = count + 1; } }) console.log("countcountcountcount: ",count) if(count >= 10 && e.currentTarget.dataset.is_selected==0){ wx.showToast({ title: '最多10个专长', icon: "error" }) }else{ let is_selected = e.currentTarget.dataset.is_selected; let index = e.currentTarget.dataset.index; let data = "zhuanchang_columns["+index+"].is_selected"; this.setData({[data]: is_selected==1?0:1}) } this.checkZhuanchangNote() }, checkZhuanchangNote(){ let count = 0 this.data.zhuanchang_columns.forEach(item => { if(item.is_selected == 1){ count = count + 1; } }) if(count > 0){ this.setData({ zhuanchang_note: "" }) } if(count == 0){ this.setData({ zhuanchang_note: "请选择专长" }) } }, zhuanchangConfirm(e){ this.setData({ zhuanchang_show: false }); }, zhuanchangConcle(e){ this.setData({ zhuanchang_show: false }); }, addDoctorAuthIden(e){ console.log("addDoctorAuthIden addDoctorAuthIden") let from = e.currentTarget.dataset.from; console.log("from: ", from); let params = {}; params.source = from=="myinfo"?2:1; if(!this.data.is_avatar){wx.showToast({title: '请上传头像',icon: "error"});return} params.avatar = this.data.avatar; if(!this.data.select_county_id){wx.showToast({title: '请选择城市',icon: "error"});return} if(!this.data.select_yiyuan_id){wx.showToast({title: '请选择医院',icon: "error"});return} params.hospital_id = this.data.select_yiyuan_id;//医院id if(!this.data.select_keshi_id){wx.showToast({title: '请选择科室',icon: "error"});return} params.department_custom_id = this.data.select_keshi_id;//科室id // if(!this.data.custom_keshi){wx.showToast({title: '请输入科室',icon: "error"});return} params.department_custom_name = this.data.custom_keshi;//自定义科室名称 if(!this.data.office_phone){wx.showToast({title: '请输入科室电话',icon: "error"});return} params.department_custom_mobile = this.data.office_phone;//科室电话 params.doctor_expertise = this.data.zhuanchang_columns.filter(e => e.is_selected == 1 ).map(e => e.expertise_id);//专长 if(params.doctor_expertise.length == 0){wx.showToast({title: '请选择专长',icon: "error"});return} if(!this.data.select_zhicheng_id){wx.showToast({title: '请选择职称',icon: "error"});return} params.doctor_title = this.data.select_zhicheng_id;//职称id if(!this.data.textarea_jianjie){wx.showToast({title: '请输入简介',icon: "error"});return} params.brief_introduction = this.data.textarea_jianjie;//简介 if(!this.data.textarea_shanchang){wx.showToast({title: '请输入擅长',icon: "error"});return} params.be_good_at = this.data.textarea_shanchang;//擅长 if(from == "doctorauthiden"){//只有在医师身份认证模块才去修改证件 if(this.data.zhiye_file_list.length == 0){wx.showToast({title: '请上传医师执业证',icon: "error"});return} if(this.data.zhiye_file_list.length < 2){wx.showToast({title: '医师执业证至少2张',icon: "error"});return} params.license_cert = this.data.zhiye_file_list.map(e => e.url);//医师执业证 if(this.data.zige_file_list.length == 0){wx.showToast({title: '请上传医师资格证',icon: "error"});return} params.qualification_cert = this.data.zige_file_list.map(e => e.url);//医生资格证 if(this.data.zhicheng_file_list.length == 0){wx.showToast({title: '请上传职称证',icon: "error"});return} params.work_cert = this.data.zhicheng_file_list.map(e => e.url);//工作证,职称证 } console.log(params); let _this = this; api.postDoctorAuthIden(params).then(response => { console.log(response); wx.showToast({ title: '提交成功', icon: "success" }) _this.setData({ iden_auth_status_txt: "资料已提交,审核中", iden_auth_disabled: true, iden_auth_status: 2, }) }).catch(errors => {console.error(errors);}) }, onOfficePhoneChange(){ this.setData({ department_custom_mobile_reason: "" }) }, doUploadFile(event) { console.log("index douploadFIle: ", event); const scene = event.currentTarget.dataset.scene; const field_name = event.currentTarget.dataset.field_name; const file_multiple = event.currentTarget.dataset.file_multiple;//是否为多张图 console.log("scene: ", scene); console.log("field_name: ", field_name); console.log("file_multiple: ", file_multiple); let _this = this; api.getOssSign({user_type:2,scene:scene}).then(response => { console.log(response); const { file } = event.detail; file.forEach(item => { console.log("file: ", item); const filename = FileUtil.getFileName(item); const host = response.data.host; const signature = response.data.signature; const ossAccessKeyId = response.data.accessid; const policy = response.data.policy; const key = response.data.dir+filename; const filePath = item.url; // 待上传文件的文件路径。 wx.uploadFile({ url: host, // 开发者服务器的URL。 filePath: filePath, name: 'file', // 必须填file。 formData: { key, policy, OSSAccessKeyId: ossAccessKeyId, signature, }, success: (res) => { console.log("upload: ", res); let reason_name = field_name + "_reason";//错误原因置空 if (res.statusCode === 204) { if(scene == 1){ this.setData({ is_avatar: true }) } wx.showToast({title: '上传成功'}) if(file_multiple == "true"){//多张图 let img = {} img.url = host+"/"+key; img.isImg = true; let img_list = _this.data[field_name]; console.log("img_list: ", img_list); img_list.push(img); console.log("img_list: ", img_list); reason_name = field_name=='zhiye_file_list'?'license_cert_reason':field_name=='zige_file_list'?'qualification_cert_reason':'work_cert_reason'; this.setData({ [field_name]: img_list, [reason_name]: "" }); }else{ this.setData({ [field_name]: host+"/"+key, [reason_name]: "" }); } } }, fail: err => { console.log(err); } }); }) }).catch(errors => { console.error(errors); }) }, doUploadPhoto(event) { console.log("index douploadFIle: ", event); const scene = event.currentTarget.dataset.scene; const field_name = event.currentTarget.dataset.field_name; const file_multiple = event.currentTarget.dataset.file_multiple;//是否为多张图 console.log("scene: ", scene); console.log("field_name: ", field_name); console.log("file_multiple: ", file_multiple); let _this = this; api.getOssSign({user_type:2,scene:scene}).then(response => { console.log(response); const { file } = event.detail; console.log("file: ", file); const filename = FileUtil.getFileName(file); const host = response.data.host; const signature = response.data.signature; const ossAccessKeyId = response.data.accessid; const policy = response.data.policy; const key = response.data.dir+filename; const filePath = file.url; // 待上传文件的文件路径。 wx.uploadFile({ url: host, // 开发者服务器的URL。 filePath: filePath, name: 'file', // 必须填file。 formData: { key, policy, OSSAccessKeyId: ossAccessKeyId, signature, }, success: (res) => { console.log("upload: ", res); let reason_name = field_name + "_reason";//错误原因置空 if (res.statusCode === 204) { if(scene == 1){ this.setData({ is_avatar: true }) } wx.showToast({title: '上传成功'}) if(file_multiple == "true"){//多张图 let img = {} img.url = host+"/"+key; img.isImg = true; let img_list = _this.data[field_name]; console.log("img_list: ", img_list); img_list.push(img); console.log("img_list: ", img_list); reason_name = field_name=='zhiye_file_list'?'license_cert_reason':field_name=='zige_file_list'?'qualification_cert_reason':'work_cert_reason'; this.setData({ [field_name]: img_list, [reason_name]: "" }); }else{ this.setData({ [field_name]: host+"/"+key, [reason_name]: "" }); } } }, fail: err => { console.log(err); } }); }).catch(errors => { console.error(errors); }) }, doDeleteFile(event){ console.log(event); let url = event.detail.file.url; let file_name = event.currentTarget.dataset.field_name; let img_list = this.data[file_name].filter(item => item.url != url); this.setData({ [file_name]: img_list }) }, moveZhuanChang(){ } } })