Browse Source

门店管理-完成

jz.kai 3 years ago
parent
commit
a12b935d32
3 changed files with 90 additions and 308 deletions
  1. 2 63
      package-lock.json
  2. 86 243
      src/views/base/shop-detail.vue
  3. 2 2
      src/views/base/shop-list.vue

+ 2 - 63
package-lock.json

@@ -2599,14 +2599,6 @@
       "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
       "dev": true
     },
-    "async-validator": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
-      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
-      "requires": {
-        "babel-runtime": "6.x"
-      }
-    },
     "asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -2676,11 +2668,6 @@
         "resolve": "^1.12.0"
       }
     },
-    "babel-helper-vue-jsx-merge-props": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
-      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
-    },
     "babel-loader": {
       "version": "8.0.6",
       "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz",
@@ -2715,27 +2702,6 @@
         "resolve": "^1.4.0"
       }
     },
-    "babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
-      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
-      "requires": {
-        "core-js": "^2.4.0",
-        "regenerator-runtime": "^0.11.0"
-      },
-      "dependencies": {
-        "core-js": {
-          "version": "2.6.11",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
-          "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
-        },
-        "regenerator-runtime": {
-          "version": "0.11.1",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
-        }
-      }
-    },
     "balanced-match": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -4441,7 +4407,8 @@
     "deepmerge": {
       "version": "1.5.2",
       "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
-      "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
+      "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
+      "dev": true
     },
     "default-gateway": {
       "version": "5.0.5",
@@ -4894,19 +4861,6 @@
       "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==",
       "dev": true
     },
-    "element-ui": {
-      "version": "2.12.0",
-      "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.12.0.tgz",
-      "integrity": "sha512-DapyT0PW4i/1ETPHk8K8Qbe8B6hj10+dXsRTrOTFryV9wAs6e9mCxbV65awokyR2/v/KuIHJmqX+mH3wUa4rOQ==",
-      "requires": {
-        "async-validator": "~1.8.1",
-        "babel-helper-vue-jsx-merge-props": "^2.0.0",
-        "deepmerge": "^1.2.0",
-        "normalize-wheel": "^1.0.1",
-        "resize-observer-polyfill": "^1.5.0",
-        "throttle-debounce": "^1.0.1"
-      }
-    },
     "elliptic": {
       "version": "6.5.3",
       "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
@@ -8068,11 +8022,6 @@
       "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
       "dev": true
     },
-    "normalize-wheel": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
-      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
-    },
     "npm-run-path": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -10004,11 +9953,6 @@
       "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=",
       "dev": true
     },
-    "resize-observer-polyfill": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
-      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
-    },
     "resolve": {
       "version": "1.17.0",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
@@ -11549,11 +11493,6 @@
         "neo-async": "^2.6.0"
       }
     },
-    "throttle-debounce": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
-      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
-    },
     "through": {
       "version": "2.3.8",
       "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",

+ 86 - 243
src/views/base/shop-detail.vue

@@ -5,188 +5,80 @@
 }
 </style>
 <template>
-  <el-dialog
-    :visible.sync="showDialog"
-    :title="title"
-    :modal-append-to-body="false"
-    style="text-align: left"
-    @close="closeDialog"
-    :close-on-click-modal="false"
-  >
+  <el-dialog :visible.sync="showDialog" :title="title" :modal-append-to-body="false" style="text-align: left;" @close="closeDialog" :close-on-click-modal="false">
     <div class="user-panel" v-loading="loading">
-      <el-form
-        ref="form"
-        :model="formModel"
-        :rules="ruleValidate"
-        :label-width="'100px'"
-      >
-        <el-form-item label="编号" prop="id">
-          <el-input
-            v-model="formModel.id"
-            placeholder="请输入编号"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="门店名称" prop="name">
-          <el-input
-            v-model="formModel.name"
-            placeholder="请输入门店名称"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="区域编号" prop="areaId">
-          <el-input
-            v-model="formModel.areaId"
-            placeholder="请输入区域编号"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="门店地址" prop="address">
-          <el-input
-            v-model="formModel.address"
-            placeholder="请输入门店地址"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="经度" prop="longitude">
-          <el-input
-            v-model="formModel.longitude"
-            placeholder="请输入经度"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="纬度" prop="latitude">
-          <el-input
-            v-model="formModel.latitude"
-            placeholder="请输入纬度"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="营业执照" prop="license">
-          <el-input
-            v-model="formModel.license"
-            placeholder="请输入营业执照"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="加盟人" prop="joinName">
-          <el-input
-            v-model="formModel.joinName"
-            placeholder="请输入加盟人"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="加盟人电话" prop="joinPhone">
-          <el-input
-            v-model="formModel.joinPhone"
-            placeholder="请输入加盟人电话"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="加盟人身份证" prop="joinIdCard">
-          <el-input
-            v-model="formModel.joinIdCard"
-            placeholder="请输入加盟人身份证"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="加盟人实名状态" prop="joinIsRealName">
-          <el-input
-            v-model="formModel.joinIsRealName"
-            placeholder="请输入加盟人实名状态"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="管理人" prop="managerName">
-          <el-input
-            v-model="formModel.managerName"
-            placeholder="请输入管理人"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="管理人电话" prop="managerPhone">
-          <el-input
-            v-model="formModel.managerPhone"
-            placeholder="请输入管理人电话"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="管理人身份证" prop="managerIdCard">
-          <el-input
-            v-model="formModel.managerIdCard"
-            placeholder="请输入管理人身份证"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="管理人实名状态" prop="managerIsRealName">
-          <el-input
-            v-model="formModel.managerIsRealName"
-            placeholder="请输入管理人实名状态"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="预付金额" prop="prepaymentAmount">
-          <el-input
-            v-model="formModel.prepaymentAmount"
-            placeholder="请输入预付金额"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="消费金额" prop="consumptionAmount">
-          <el-input
-            v-model="formModel.consumptionAmount"
-            placeholder="请输入消费金额"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="删除标示" prop="delFlag">
-          <el-input
-            v-model="formModel.delFlag"
-            placeholder="请输入删除标示"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="创建人" prop="createBy">
-          <el-input
-            v-model="formModel.createBy"
-            placeholder="请输入创建人"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="创建时间" prop="createTime">
-          <el-input
-            v-model="formModel.createTime"
-            placeholder="请输入创建时间"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="更新人" prop="updateBy">
-          <el-input
-            v-model="formModel.updateBy"
-            placeholder="请输入更新人"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="更新时间" prop="updateTime">
-          <el-input
-            v-model="formModel.updateTime"
-            placeholder="请输入更新时间"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
+      <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'140px'">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="门店名称" prop="name">
+              <el-input v-model="formModel.name" placeholder="请输入门店名称" style="width: 300px"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="营业执照" prop="license">
+              <el-input v-model="formModel.license" placeholder="请输入营业执照" style="width: 300px"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属区域" prop="areaId">
+              <el-select-tree size="mediumn" style="width: 300px" :props="props" :options="queryAreaResult" v-model="formModel.areaId" height="200"></el-select-tree>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="加盟时间" prop="joinTime">
+              <el-date-picker v-model="formModel.joinTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 300px"></el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="加盟人" prop="joinName">
+              <el-input v-model="formModel.joinName" placeholder="请输入加盟人" style="width: 300px"></el-input>
+            </el-form-item>
+            <el-form-item label="加盟人电话" prop="joinPhone">
+              <el-input v-model="formModel.joinPhone" placeholder="请输入加盟人电话" style="width: 300px"></el-input>
+            </el-form-item>
+            <el-form-item label="加盟人身份证" prop="joinIdCard">
+              <el-input v-model="formModel.joinIdCard" placeholder="请输入加盟人身份证" style="width: 300px"></el-input>
+            </el-form-item>
+            <el-form-item label="加盟人实名状态" prop="joinIsRealName">
+              <el-radio-group v-model="formModel.joinIsRealName">
+                <el-radio-button :label="false">未实名</el-radio-button>
+                <el-radio-button :label="true">已实名</el-radio-button>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="管理人" prop="managerName">
+              <el-input v-model="formModel.managerName" placeholder="请输入管理人" style="width: 300px"></el-input>
+            </el-form-item>
+            <el-form-item label="管理人电话" prop="managerPhone">
+              <el-input v-model="formModel.managerPhone" placeholder="请输入管理人电话" style="width: 300px"></el-input>
+            </el-form-item>
+            <el-form-item label="管理人身份证" prop="managerIdCard">
+              <el-input v-model="formModel.managerIdCard" placeholder="请输入管理人身份证" style="width: 300px"></el-input>
+            </el-form-item>
+            <el-form-item label="管理人实名状态" prop="managerIsRealName">
+              <el-radio-group v-model="formModel.managerIsRealName">
+                <el-radio-button :label="false">未实名</el-radio-button>
+                <el-radio-button :label="true">已实名</el-radio-button>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
       <el-button @click="closeDialog">取 消</el-button>
-      <el-button type="primary" @click="handleSubmit" :loading="submitting"
-        >确 定</el-button
-      >
+      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
     </span>
   </el-dialog>
 </template>
 <script>
 import Constant from "@/constant";
 import shopApi from "@/api/base/shop";
+import areaApi from "@/api/base/area";
+import SelectTree from "@/components/SelectTree";
 
 export default {
   props: ["businessKey", "title"],
@@ -194,82 +86,24 @@ export default {
     return {
       formModel: {},
       ruleValidate: {
-        id: [{ required: true, message: "编号不能为空", trigger: "blur" }],
-        name: [
-          { required: true, message: "门店名称不能为空", trigger: "blur" },
-        ],
-        areaId: [
-          { required: true, message: "区域编号不能为空", trigger: "blur" },
-        ],
-        address: [
-          { required: true, message: "门店地址不能为空", trigger: "blur" },
-        ],
-        longitude: [
-          { required: true, message: "经度不能为空", trigger: "blur" },
-        ],
-        latitude: [
-          { required: true, message: "纬度不能为空", trigger: "blur" },
-        ],
-        license: [
-          { required: true, message: "营业执照不能为空", trigger: "blur" },
-        ],
-        joinName: [
-          { required: true, message: "加盟人不能为空", trigger: "blur" },
-        ],
-        joinPhone: [
-          { required: true, message: "加盟人电话不能为空", trigger: "blur" },
-        ],
-        joinIdCard: [
-          { required: true, message: "加盟人身份证不能为空", trigger: "blur" },
-        ],
-        joinIsRealName: [
-          {
-            required: true,
-            message: "加盟人实名状态不能为空",
-            trigger: "blur",
-          },
-        ],
-        managerName: [
-          { required: true, message: "管理人不能为空", trigger: "blur" },
-        ],
-        managerPhone: [
-          { required: true, message: "管理人电话不能为空", trigger: "blur" },
-        ],
-        managerIdCard: [
-          { required: true, message: "管理人身份证不能为空", trigger: "blur" },
-        ],
-        managerIsRealName: [
-          {
-            required: true,
-            message: "管理人实名状态不能为空",
-            trigger: "blur",
-          },
-        ],
-        prepaymentAmount: [
-          { required: true, message: "预付金额不能为空", trigger: "blur" },
-        ],
-        consumptionAmount: [
-          { required: true, message: "消费金额不能为空", trigger: "blur" },
-        ],
-        delFlag: [
-          { required: true, message: "删除标示不能为空", trigger: "blur" },
-        ],
-        createBy: [
-          { required: true, message: "创建人不能为空", trigger: "blur" },
-        ],
-        createTime: [
-          { required: true, message: "创建时间不能为空", trigger: "blur" },
-        ],
-        updateBy: [
-          { required: true, message: "更新人不能为空", trigger: "blur" },
-        ],
-        updateTime: [
-          { required: true, message: "更新时间不能为空", trigger: "blur" },
-        ],
+        name: [{ required: true, message: "门店名称不能为空", trigger: "blur"}],
+        areaId: [{ required: true, message: "区域编号不能为空", trigger: "blur"}],
+        license: [{ required: true, message: "营业执照不能为空", trigger: "blur"}],
+        joinName: [{ required: true, message: "加盟人不能为空", trigger: "blur"}],
+        joinPhone: [{ required: true, message: "加盟人电话不能为空", trigger: "blur"}],
+        joinIdCard: [{ required: true, message: "加盟人身份证不能为空", trigger: "blur"}],
+        joinIsRealName: [{ required: true, message: "加盟人实名状态不能为空", trigger: "blur"}],
+        joinTime: [{ required: true, message: "加盟时间不能为空", trigger: "blur"}],
       },
       showDialog: true,
       loading: false,
       submitting: false,
+      props: {
+        value: "id",
+        label: "name",
+        children: "children"
+      },
+      queryAreaResult: [],
     };
   },
   methods: {
@@ -315,6 +149,12 @@ export default {
   mounted: function () {
     var self = this;
 
+    var formData = new FormData();
+    areaApi.queryList(formData).then(response=>{
+      var jsonData = response.data;
+      this.queryAreaResult = jsonData;
+    });
+
     (function () {
       if (self.businessKey.length == 0) {
         return shopApi.create();
@@ -336,5 +176,8 @@ export default {
         self.$message.error(error + "");
       });
   },
+  components: {
+    "el-select-tree": SelectTree,
+  },
 };
 </script>

+ 2 - 2
src/views/base/shop-list.vue

@@ -40,13 +40,13 @@
     <el-table :data="tableData" style="min-height: 400px" v-loading="loading" stripe @sort-change="sortChange" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55"></el-table-column>
       <el-table-column prop="name" label="门店名称" width="180"></el-table-column>
-      <el-table-column prop="areaId" label="区域编号" width="180"></el-table-column>
+      <el-table-column prop="areaName" label="所属区域" width="180"></el-table-column>
       <el-table-column prop="address" label="门店地址" width="180"></el-table-column>
       <el-table-column prop="joinName" label="加盟人" width="180"></el-table-column>
       <el-table-column prop="managerName" label="管理人" width="180"></el-table-column>
+      <el-table-column prop="joinTime" label="加盟时间" width="180"></el-table-column>
       <el-table-column prop="prepaymentAmount" label="预付金额" width="180"></el-table-column>
       <el-table-column prop="consumptionAmount" label="消费金额" width="180"></el-table-column>
-      <el-table-column prop="createTime" label="加盟时间" width="180"></el-table-column>
       <el-table-column label="操作">
         <template slot-scope="{ row }">
           <el-button size="mini" type="warning" @click="handleEdit(row)">编辑</el-button>