|
|
@@ -0,0 +1,322 @@
|
|
|
+const _Http = getApp().globalData.http;
|
|
|
+
|
|
|
+Page({
|
|
|
+ data: {
|
|
|
+ loading: false,
|
|
|
+ disabled: true,
|
|
|
+ showAll: false,
|
|
|
+ editMode: false,
|
|
|
+ form: [{
|
|
|
+ label: "门店序号",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "text",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请输入门店序号",
|
|
|
+ valueName: "storeno",
|
|
|
+ required: true,
|
|
|
+ checking: "base"
|
|
|
+ }, {
|
|
|
+ label: "门店名称",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "text",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请输入门店名称",
|
|
|
+ valueName: "storename",
|
|
|
+ required: true,
|
|
|
+ checking: "base"
|
|
|
+ }, {
|
|
|
+ label: "门店面积",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "number",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请输入门店面积",
|
|
|
+ valueName: "area",
|
|
|
+ required: true
|
|
|
+ }, {
|
|
|
+ label: "导购人数",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "number",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请输入导购人数",
|
|
|
+ valueName: "salercount",
|
|
|
+ required: true
|
|
|
+ }, {
|
|
|
+ label: "负责人",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "radio",
|
|
|
+ value: "",
|
|
|
+ radioList: [],
|
|
|
+ valueName: "leader_hrid",
|
|
|
+ required: true,
|
|
|
+ checking: "base",
|
|
|
+ direction: "horizontal"
|
|
|
+ }, {
|
|
|
+ label: "售前电话",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "number",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请输入售前电话",
|
|
|
+ valueName: "sale_phonenmber",
|
|
|
+ required: true
|
|
|
+ }, {
|
|
|
+ label: "售后电话",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "number",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请输入售后电话",
|
|
|
+ valueName: "service_phonenmber",
|
|
|
+ required: true
|
|
|
+ }, {
|
|
|
+ label: "装修日期",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "date",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请选择装修日期",
|
|
|
+ valueName: "decorationdate",
|
|
|
+ required: true
|
|
|
+ }, {
|
|
|
+ label: "开店日期",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "date",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请选择开店日期",
|
|
|
+ valueName: "opendate",
|
|
|
+ required: true
|
|
|
+ }, {
|
|
|
+ label: "门店地址类型",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "radio",
|
|
|
+ value: "",
|
|
|
+ radioList: [],
|
|
|
+ valueName: "markettype",
|
|
|
+ required: true,
|
|
|
+ checking: "base",
|
|
|
+ direction: "horizontal"
|
|
|
+ }, {
|
|
|
+ label: "门店类型",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "radio",
|
|
|
+ value: "",
|
|
|
+ radioList: [
|
|
|
+ { id: "自营", name: "自营" },
|
|
|
+ { id: "分销", name: "分销" }
|
|
|
+ ],
|
|
|
+ valueName: "storetype",
|
|
|
+ required: true,
|
|
|
+ checking: "base",
|
|
|
+ direction: "horizontal"
|
|
|
+ }, {
|
|
|
+ label: "省市县",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "region",
|
|
|
+ value: [],
|
|
|
+ placeholder: "省,市,县",
|
|
|
+ valueName: "region",
|
|
|
+ required: true
|
|
|
+ }, {
|
|
|
+ label: "详细地址",
|
|
|
+ error: false,
|
|
|
+ errMsg: "",
|
|
|
+ type: "textarea",
|
|
|
+ value: "",
|
|
|
+ placeholder: "请输入详细地址",
|
|
|
+ valueName: "address",
|
|
|
+ required: true,
|
|
|
+ checking: "base"
|
|
|
+ }],
|
|
|
+ content: {
|
|
|
+ sa_storeid: 0
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ onLoad(options) {
|
|
|
+ if (options.edit) {
|
|
|
+ wx.setNavigationBarTitle({ title: '编辑门店' });
|
|
|
+ this.setData({ editMode: true });
|
|
|
+ this.loadOptions(true);
|
|
|
+ } else {
|
|
|
+ this.loadOptions(false);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 加载选项列表 */
|
|
|
+ loadOptions(edit) {
|
|
|
+ let count = 0;
|
|
|
+ const onDone = () => {
|
|
|
+ count++;
|
|
|
+ if (count === 2 && edit) {
|
|
|
+ this.populateEditForm();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ this.getLeaderList(edit ? onDone : null);
|
|
|
+ this.getMarketTypeList(edit ? onDone : null);
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 编辑模式:回填表单数据 */
|
|
|
+ populateEditForm() {
|
|
|
+ const data = _Http.detail;
|
|
|
+ let form = this.data.form;
|
|
|
+ form = form.map(v => {
|
|
|
+ switch (v.valueName) {
|
|
|
+ case "region":
|
|
|
+ v.value = data.province ? [data.province, data.city, data.county] : [];
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ v.value = data[v.valueName] !== undefined ? data[v.valueName] : '';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return v;
|
|
|
+ });
|
|
|
+ this.setData({
|
|
|
+ form,
|
|
|
+ "content.sa_storeid": data.sa_storeid
|
|
|
+ });
|
|
|
+ this.selectComponent("#Form").confirm();
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 获取负责人列表 */
|
|
|
+ getLeaderList(cb) {
|
|
|
+ _Http.basic({
|
|
|
+ id: "20221107094704",
|
|
|
+ content: {
|
|
|
+ pageNumber: 1,
|
|
|
+ pageSize: 99999
|
|
|
+ }
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 1 && res.data && res.data.length) {
|
|
|
+ let form = this.data.form;
|
|
|
+ let leaderField = form.find(v => v.valueName === 'leader_hrid');
|
|
|
+ leaderField.radioList = res.data.map(item => ({
|
|
|
+ id: item.sys_enterprise_hrid,
|
|
|
+ name: item.name
|
|
|
+ }));
|
|
|
+ if (!this.data.editMode) {
|
|
|
+ leaderField.value = leaderField.radioList[0].id;
|
|
|
+ }
|
|
|
+ this.setData({ form });
|
|
|
+ this.selectComponent("#Form").confirm();
|
|
|
+ }
|
|
|
+ if (cb) cb();
|
|
|
+ }).catch(err => {
|
|
|
+ console.error('获取负责人列表失败', err);
|
|
|
+ if (cb) cb();
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 获取门店地址类型列表 */
|
|
|
+ getMarketTypeList(cb) {
|
|
|
+ _Http.basic({
|
|
|
+ classname: "sysmanage.develop.optiontype.optiontype",
|
|
|
+ method: "optiontypeselect",
|
|
|
+ content: {
|
|
|
+ pageNumber: 1,
|
|
|
+ pageSize: 1000,
|
|
|
+ typename: "markettype",
|
|
|
+ parameter: {}
|
|
|
+ }
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 1 && res.data && res.data.length) {
|
|
|
+ let form = this.data.form;
|
|
|
+ let markettypeField = form.find(v => v.valueName === 'markettype');
|
|
|
+ markettypeField.radioList = res.data.map(item => ({
|
|
|
+ id: item.value,
|
|
|
+ name: item.value
|
|
|
+ }));
|
|
|
+ if (!this.data.editMode) {
|
|
|
+ markettypeField.value = markettypeField.radioList[0].id;
|
|
|
+ }
|
|
|
+ this.setData({ form });
|
|
|
+ this.selectComponent("#Form").confirm();
|
|
|
+ }
|
|
|
+ if (cb) cb();
|
|
|
+ }).catch(err => {
|
|
|
+ console.error('获取门店地址类型列表失败', err);
|
|
|
+ if (cb) cb();
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 表单必填项是否完成 */
|
|
|
+ onConfirm({ detail }) {
|
|
|
+ this.setData({
|
|
|
+ disabled: detail
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 表单中断回调 */
|
|
|
+ interrupt({ detail }) {},
|
|
|
+
|
|
|
+ /* 提交表单 */
|
|
|
+ submit() {
|
|
|
+ this.setData({ loading: true });
|
|
|
+ let formData = this.selectComponent("#Form").submit();
|
|
|
+ if (!formData) {
|
|
|
+ this.setData({ loading: false });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取负责人姓名
|
|
|
+ const leaderField = this.data.form.find(v => v.valueName === 'leader_hrid');
|
|
|
+ const selectedLeader = leaderField.radioList.find(v => v.id == formData.leader_hrid);
|
|
|
+ formData.leadername = selectedLeader ? selectedLeader.name : '';
|
|
|
+
|
|
|
+ // 处理省市县数据
|
|
|
+ if (formData.region && formData.region.length) {
|
|
|
+ formData.province = formData.region[0] || "";
|
|
|
+ formData.city = formData.region[1] || "";
|
|
|
+ formData.county = formData.region[2] || "";
|
|
|
+ delete formData.region;
|
|
|
+ }
|
|
|
+
|
|
|
+ let content = {
|
|
|
+ ...this.data.content,
|
|
|
+ ...formData
|
|
|
+ };
|
|
|
+
|
|
|
+ _Http.basic({
|
|
|
+ id: '2026031010540701',
|
|
|
+ content
|
|
|
+ }).then(res => {
|
|
|
+ this.setData({ loading: false });
|
|
|
+ if (res.code == 1) {
|
|
|
+ const listPage = getCurrentPages().find(v => v.__route__ == 'CRM/myStore/index');
|
|
|
+ if (listPage) {
|
|
|
+ listPage.getList(true);
|
|
|
+ }
|
|
|
+ wx.navigateBack({
|
|
|
+ delta: 1,
|
|
|
+ success: () => {
|
|
|
+ wx.showToast({ title: this.data.editMode ? '编辑成功' : '创建成功', icon: 'none' });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ wx.showToast({ title: res.msg || '操作失败', icon: 'none' });
|
|
|
+ }
|
|
|
+ }).catch(() => {
|
|
|
+ this.setData({ loading: false });
|
|
|
+ wx.showToast({ title: '操作失败', icon: 'none' });
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 是否显示全部 */
|
|
|
+ onChange({ detail }) {
|
|
|
+ this.setData({
|
|
|
+ showAll: detail
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ closePage() {
|
|
|
+ wx.navigateBack({ delta: 1 });
|
|
|
+ }
|
|
|
+});
|