Jelajahi Sumber

多店铺,绑定店铺

yfh 1 bulan lalu
induk
melakukan
d0c9f177d6

+ 8 - 0
src/api/company/company.js

@@ -49,6 +49,14 @@ export function updateCompany(data) {
     data: data
   })
 }
+// 修改企业
+export function bindShopCompany(data) {
+  return request({
+    url: '/company/company/bindShopCompany',
+    method: 'put',
+    data: data
+  })
+}
 
 // 删除企业
 export function delCompany(companyId) {

+ 5 - 0
src/api/hisStore/store.js

@@ -73,4 +73,9 @@ export function getStoreAuditLog(storeId) {
     url: '/store/his/store/auditLog/'+ storeId,
     method: 'get'
   })
+}export function storeList() {
+  return request({
+    url: '/store/store/storeList',
+    method: 'get'
+  })
 }

+ 120 - 3
src/views/company/company/index.vue

@@ -119,6 +119,14 @@
             @click="handleResetPwd(scope.row)"
             v-hasPermi="['company:company:resetPwd']"
           >重置密码</el-button>
+          <!-- 新增绑定店铺按钮 -->
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-shop"
+            @click="handleBindShop(scope.row)"
+            v-hasPermi="['company:company:bindShop']"
+          >绑定店铺</el-button>
           <el-button
             size="mini"
             type="text"
@@ -151,7 +159,38 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-
+    <!-- 绑定店铺对话框 -->
+    <el-dialog :title="bindShop.title" :visible.sync="bindShop.open" width="600px" append-to-body>
+      <el-form ref="bindShopForm" :rules="bindShopRules" :model="bindShopForm" label-width="100px">
+        <el-form-item label="公司名称">
+          <el-input v-model="bindShopForm.companyName" disabled />
+        </el-form-item>
+        <el-form-item label="选择店铺" prop="shopId">
+          <el-select
+            v-model="bindShopForm.shopId"
+            placeholder="请选择店铺"
+            filterable
+            clearable
+            style="width: 100%"
+            @change="handleShopChange"
+          >
+            <el-option
+              v-for="shop in shopList"
+              :key="shop.storeId"
+              :label="shop.storeName"
+              :value="shop.storeId"
+            >
+              <span style="float: left">{{ shop.storeName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ shop.storeId }}</span>
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitBindShopForm" :loading="bindShop.submitLoading">确 定</el-button>
+        <el-button @click="bindShop.open=false">取 消</el-button>
+      </div>
+    </el-dialog>
     <!-- 添加或修改企业对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="650px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
@@ -278,8 +317,8 @@
 </template>
 
 <script>
-import {recharge,deduct, resetPwd,listCompany, getCompany, delCompany, addCompany, updateCompany, exportCompany } from "@/api/company/company";
-
+import {recharge,deduct, resetPwd,listCompany, getCompany, delCompany, addCompany, updateCompany, exportCompany ,bindShopCompany} from "@/api/company/company";
+import { storeList } from '@/api/hisStore/store'
 import {getFollowDoctorList} from "@/api/his/doctor";
 
 import {getVoiceApiList } from "@/api/company/companyVoiceApi";
@@ -288,6 +327,23 @@ export default {
   name: "Company",
   data() {
     return {
+      shopList: [], // 清空店铺列表
+      // 绑定店铺相关
+      bindShopForm: {
+        companyId: null,
+        shopId: null,
+      },
+      bindShopRules: {
+        shopId: [
+          { required: true, message: "店铺不能为空", trigger: "blur" }
+        ]
+      },
+      bindShop: {
+        open: false,
+        title: "绑定店铺",
+        loading: false,
+        submitLoading: false
+      },
       // 表单参数
       rechargeForm: {
         money:0,
@@ -402,8 +458,36 @@ export default {
       this.voiceApis = response.data;
     });
     this.getList();
+    this.storeList();
+
   },
   methods: {
+
+    /** 店铺选择变化 */
+    handleShopChange(shopId) {
+      if (shopId) {
+        // 可以在这里获取选中店铺的详细信息
+        console.log('选中的店铺ID:', shopId);
+      }
+    },
+    /** 绑定店铺按钮操作 */
+    handleBindShop(row) {
+      this.resetBindShopForm();
+      this.bindShopForm.companyId = row.companyId;
+      this.bindShopForm.shopId = row.storeId ? String(row.storeId) : '';
+      this.bindShop.open = true;
+    },
+    /** 重置绑定店铺表单 */
+    resetBindShopForm() {
+      this.bindShopForm = {
+        companyId: null,
+        companyName: '',
+        shopId: null,
+        shopName: '',
+        remark: ''
+      };
+      this.resetForm("bindShopForm");
+    },
     handleDeduct(row) {
       const companyId = row.companyId
       this.deductForm.companyId=row.companyId;
@@ -411,6 +495,33 @@ export default {
       this.deductForm.balance=row.money;
       this.deduct.open = true;
     },
+    /** 提交绑定店铺表单 */
+    submitBindShopForm() {
+      this.$refs["bindShopForm"].validate(valid => {
+        if (valid) {
+          this.bindShop.submitLoading = true;
+          console.log( this.bindShopForm.companyId)
+          console.log( this.bindShopForm.shopId)
+          // 调用绑定店铺的API
+          bindShopCompany({
+            companyId: this.bindShopForm.companyId,
+            storeId: this.bindShopForm.shopId
+          }).then(response => {
+            if (response.code === 200) {
+              this.msgSuccess("绑定店铺成功");
+              this.bindShop.open = false;
+              this.getList(); // 刷新列表
+            } else {
+              this.msgError(response.msg);
+            }
+            this.bindShop.submitLoading = false;
+          }).catch(() => {
+            this.bindShop.submitLoading = false;
+          });
+        }
+      });
+    },
+
     /** 提交按钮 */
     submitDeductForm() {
       this.$refs["deductForm"].validate(valid => {
@@ -455,6 +566,12 @@ export default {
         this.loading = false;
       });
     },
+    storeList() {
+      storeList().then(response => {
+        console.log(response.data)
+        this.shopList = response.data;
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;

+ 6 - 6
src/views/components/his/storeDetails.vue

@@ -34,13 +34,13 @@
                   :preview-src-list="[item.licenseImages]">
               </el-image>
             </el-descriptions-item>
-            <el-descriptions-item label="商品总数" >
+<!--            <el-descriptions-item label="商品总数" >
                 <span v-if="item!=null">{{item.productCount}}</span>
-            </el-descriptions-item>
+            </el-descriptions-item>-->
             <el-descriptions-item label="状态" >
                <dict-tag :options="statusOptions" :value="item.status"/>
             </el-descriptions-item>
-            <el-descriptions-item label="销量" >
+<!--            <el-descriptions-item label="销量" >
                 <span v-if="item!=null">{{item.salesCount}}</span>
             </el-descriptions-item>
             <el-descriptions-item label="余额" >
@@ -48,13 +48,13 @@
             </el-descriptions-item>
             <el-descriptions-item label="累计金额" >
                 <span v-if="item!=null">{{item.totalMoney}}</span>
-            </el-descriptions-item>
+            </el-descriptions-item>-->
             <el-descriptions-item label="审核状态" >
                 <dict-tag :options="isAuditOptions" :value="item.isAudit"/>
             </el-descriptions-item>
-            <el-descriptions-item label="登录帐号" >
+<!--            <el-descriptions-item label="登录帐号" >
                 <span v-if="item!=null">{{item.account}}</span>
-            </el-descriptions-item>
+            </el-descriptions-item>-->
             <el-descriptions-item label="创建时间" >
                 <span v-if="item!=null">{{item.createTime}}</span>
             </el-descriptions-item>

+ 2 - 2
src/views/his/store/index.vue

@@ -232,7 +232,7 @@
             :on-success="licensehandleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
             <img v-if="form.licenseImages" :src="form.licenseImages" class="avatar" width="200px">
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>          
+            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
         </el-form-item>
         <el-form-item label="店铺介绍" prop="descs" >
@@ -246,7 +246,7 @@
               v-model="form.cityIds"
               :options="citys"
               @change="handleCityChange">
-              </el-cascader>        
+              </el-cascader>
             </el-form-item>
           </el-col>
           <el-col :span="12">

+ 13 - 8
src/views/hisStore/components/storeDetails.vue

@@ -11,6 +11,9 @@
         <el-descriptions-item label="店铺名称" >
           <span v-if="item!=null">{{item.storeName}}</span>
         </el-descriptions-item>
+        <el-descriptions-item label="店铺编号" >
+          <span v-if="item!=null">{{item.storeNo}}</span>
+        </el-descriptions-item>
         <el-descriptions-item label="店铺介绍" >
           <span v-if="item!=null">{{item.descs}}</span>
         </el-descriptions-item>
@@ -27,20 +30,20 @@
         <el-descriptions-item label="店铺电话" >
           <span v-if="item!=null">{{item.phone}}</span>
         </el-descriptions-item>
-        <el-descriptions-item label="资质证书">
+<!--        <el-descriptions-item label="资质证书">
           <el-image
             style="width: 100px"
             :src="item.licenseImages"
             :preview-src-list="[item.licenseImages]">
           </el-image>
-        </el-descriptions-item>
-        <el-descriptions-item label="商品总数" >
+        </el-descriptions-item>-->
+<!--        <el-descriptions-item label="商品总数" >
           <span v-if="item!=null">{{item.productCount}}</span>
-        </el-descriptions-item>
+        </el-descriptions-item>-->
         <el-descriptions-item label="状态" >
           <dict-tag :options="statusOptions" :value="item.status"/>
         </el-descriptions-item>
-        <el-descriptions-item label="销量" >
+<!--        <el-descriptions-item label="销量" >
           <span v-if="item!=null">{{item.salesCount}}</span>
         </el-descriptions-item>
         <el-descriptions-item label="余额" >
@@ -48,13 +51,13 @@
         </el-descriptions-item>
         <el-descriptions-item label="累计金额" >
           <span v-if="item!=null">{{item.totalMoney}}</span>
-        </el-descriptions-item>
+        </el-descriptions-item>-->
         <el-descriptions-item label="审核状态" >
           <dict-tag :options="isAuditOptions" :value="item.isAudit"/>
         </el-descriptions-item>
-        <el-descriptions-item label="登录帐号" >
+<!--        <el-descriptions-item label="登录帐号" >
           <span v-if="item!=null">{{item.account}}</span>
-        </el-descriptions-item>
+        </el-descriptions-item>-->
         <el-descriptions-item label="创建时间" >
           <span v-if="item!=null">{{item.createTime}}</span>
         </el-descriptions-item>
@@ -98,6 +101,7 @@
         <el-descriptions-item label="营业执照有效期" >
           <span v-if="item!=null">{{item.businessLicenseExpireStart}} - {{item.businessLicenseExpireEnd}}</span>
         </el-descriptions-item>
+<!--
         <el-descriptions-item label="药品经营许可证" >
           <el-image
             style="width: 100px"
@@ -158,6 +162,7 @@
         <el-descriptions-item label="药品许可证有效期" >
           <span v-if="item!=null">{{item.medicalLicenseExpiryStart}} - {{item.medicalLicenseExpiryEnd}}</span>
         </el-descriptions-item>
+-->
 
 
 

+ 7 - 7
src/views/hisStore/store/audit.vue

@@ -39,7 +39,7 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item label="登录帐号" prop="account">
+<!--      <el-form-item label="登录帐号" prop="account">
         <el-input
           v-model="queryParams.account"
           placeholder="请输入登录帐号"
@@ -47,7 +47,7 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item>-->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -104,17 +104,17 @@
           <dict-tag :options="isAuditOptions" :value="scope.row.isAudit"/>
         </template>
       </el-table-column>
-      <el-table-column label="商品总数" align="center" prop="productCount" />
+<!--      <el-table-column label="商品总数" align="center" prop="productCount" />-->
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
           <dict-tag :options="statusOptions" :value="scope.row.status"/>
         </template>
       </el-table-column>
-      <el-table-column label="销量" align="center" prop="salesCount" />
-      <el-table-column label="余额" align="center" prop="balance" />
-      <el-table-column label="累计金额" align="center" prop="totalMoney" />
+<!--      <el-table-column label="销量" align="center" prop="salesCount" />-->
+<!--      <el-table-column label="余额" align="center" prop="balance" />-->
+<!--      <el-table-column label="累计金额" align="center" prop="totalMoney" />-->
 
-      <el-table-column label="登录帐号" align="center" prop="account" width="150px" />
+<!--      <el-table-column label="登录帐号" align="center" prop="account" width="150px" />-->
       <el-table-column label="创建时间" align="center" prop="createTime"  width="150px"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="130px">
         <template slot-scope="scope">

+ 479 - 365
src/views/hisStore/store/index.vue

@@ -48,7 +48,7 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="登录帐号" prop="account">
+<!--      <el-form-item label="登录帐号" prop="account">
         <el-input
           v-model="queryParams.account"
           placeholder="请输入登录帐号"
@@ -56,7 +56,7 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item>-->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -155,16 +155,16 @@
           <dict-tag :options="isAuditOptions" :value="scope.row.isAudit"/>
         </template>
       </el-table-column>
-      <el-table-column label="商品总数" align="center" prop="productCount" />
+<!--      <el-table-column label="商品总数" align="center" prop="productCount" />-->
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
           <dict-tag :options="statusOptions" :value="scope.row.status"/>
         </template>
       </el-table-column>
-      <el-table-column label="销量" align="center" prop="salesCount" />
-      <el-table-column label="余额" align="center" prop="balance" />
-      <el-table-column label="累计金额" align="center" prop="totalMoney" />
-      <el-table-column label="登录帐号" align="center" prop="account" width="150px" />
+<!--      <el-table-column label="销量" align="center" prop="salesCount" />-->
+<!--      <el-table-column label="余额" align="center" prop="balance" />-->
+<!--      <el-table-column label="累计金额" align="center" prop="totalMoney" />-->
+<!--      <el-table-column label="登录帐号" align="center" prop="account" width="150px" />-->
       <el-table-column label="创建时间" align="center" prop="createTime"  width="150px"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
         <template slot-scope="scope">
@@ -207,355 +207,376 @@
       @pagination="getList"
     />
     <!-- 添加或修改店铺管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="top">
-
-        <el-divider content-position="left">基础信息</el-divider>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="店铺名称" prop="storeName">
-              <el-input v-model="form.storeName" placeholder="请输入店铺名称" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="电话" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入店铺电话" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="企业全称" prop="fullName">
-          <el-input v-model="form.fullName" placeholder="请输入企业全称" />
-        </el-form-item>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="店铺LOGO" prop="logoUrl">
-              <el-upload
-                v-model="form.logoUrl"
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="handleAvatarSuccess"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.logoUrl" :src="form.logoUrl" class="avatar" width="200px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col >
-          <el-col :span="12">
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="店铺介绍" prop="descs" >
-              <el-input v-model="form.descs" placeholder="请输入店铺介绍" type="textarea"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="所属城市" prop="cityIds">
-              <el-cascader
-                ref="citySelect"
-                v-model="form.cityIds"
-                :options="citys"
-                @change="handleCityChange">
-              </el-cascader>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="地址" prop="address">
-              <el-input v-model="form.address" placeholder="请输入地址" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="法人姓名" prop="legalPersonName">
-              <el-input v-model="form.legalPersonName" placeholder="请输入法人姓名" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
-              <el-input v-model="form.unifiedSocialCreditCode" placeholder="请输入统一社会信用代码" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="营业范围" prop="businessScope">
-          <el-input v-model="form.businessScope" placeholder="请输入营业范围" type="textarea" />
-        </el-form-item>
-
-        <!-- 证书上传相关字段 -->
-        <el-divider content-position="left">资质证书信息</el-divider>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="营业执照上传" prop="businessLicense">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'businessLicense')"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.businessLicense" :src="form.businessLicense" class="avatar" width="100px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="营业执照失效日期" prop="businessLicenseExpire">
-              <el-date-picker
-                v-model="form.businessLicenseExpire"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="药品经营许可证上传" prop="drugLicense">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'drugLicense')"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.drugLicense" :src="form.drugLicense" class="avatar" width="100px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="药品经营许可证有效期" prop="drugLicenseExpiry">
-              <el-date-picker
-                v-model="form.drugLicenseExpiry"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="1类器械生产备案上传" prop="medicalDevice1">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice1')"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.medicalDevice1" :src="form.medicalDevice1" class="avatar" width="100px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="1类生产备案有效期" prop="medicalDevice1Expiry">
-              <el-date-picker
-                v-model="form.medicalDevice1Expiry"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="2类医疗器械备案证书上传" prop="medicalDevice2">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice2')"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.medicalDevice2" :src="form.medicalDevice2" class="avatar" width="100px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="2类医疗器械备案有效期" prop="medicalDevice2Expiry">
-              <el-date-picker
-                v-model="form.medicalDevice2Expiry"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="3类器械经营许可证上传" prop="medicalDevice3">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice3')"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.medicalDevice3" :src="form.medicalDevice3" class="avatar" width="100px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="3类器械经营许可证有效期" prop="medicalDevice3Expiry">
-              <el-date-picker
-                v-model="form.medicalDevice3Expiry"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="食品经营许可证上传" prop="foodLicense">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'foodLicense')"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.foodLicense" :src="form.foodLicense" class="avatar" width="100px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="食品经营许可证有效期" prop="foodLicenseExpiry">
-              <el-date-picker
-                v-model="form.foodLicenseExpiry"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="医疗机构执业许可证上传" prop="medicalLicense">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'medicalLicense')"
-                :before-upload="beforeAvatarUpload">
-                <img v-if="form.medicalLicense" :src="form.medicalLicense" class="avatar" width="100px">
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="医疗机构执业许可证有效期" prop="medicalLicenseExpiry">
-              <el-date-picker
-                v-model="form.medicalLicenseExpiry"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-
-        <el-divider content-position="left">店铺配置信息</el-divider>
-        <el-form-item label="退货地址" prop="refundAddress">
-          <el-input v-model="form.refundAddress" placeholder="请输入退货地址" />
-        </el-form-item>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="退货电话" prop="refundPhone">
-              <el-input v-model="form.refundPhone" placeholder="请输入退货电话" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="退货收货人" prop="refundConsignee">
-              <el-input v-model="form.refundConsignee" placeholder="请输入退货收货人" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="寄件人电话" prop="sendPhone">
-          <el-input v-model="form.sendPhone" placeholder="请输入寄件人电话" />
-        </el-form-item>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="商品总数" prop="productCount">
-              <el-input-number v-model="form.productCount"  :min="0" label="描述文字"></el-input-number>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="销量" prop="salesCount">
-              <el-input-number v-model="form.salesCount"  :min="0" label="描述文字"></el-input-number>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="累计金额" prop="totalMoney">
-              <el-input-number v-model="form.totalMoney" :precision="2" :step="0.1"></el-input-number>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <!-- <el-form-item label="分佣比例%" prop="shippingType">
-                   <el-input-number v-model="form.brokerageRate" :min="0" :max="100"></el-input-number>
-              </el-form-item> -->
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="状态">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in statusOptions"
-                  :key="dict.dictValue"
-                  :label="parseInt(dict.dictValue)"
-                >{{dict.dictLabel}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="分佣方式" prop="brokerageType" >
-              <el-radio v-model="form.brokerageType" label="1">每盒</el-radio>
-              <el-radio v-model="form.brokerageType" label="2">总价</el-radio>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="配送方式" prop="shippingType">
-          <el-checkbox-group v-model="form.shippingType" size="medium">
-            <el-checkbox v-for="(item, index) in shippingTypeOptions" :key="index" :label="item.value"
-                         :disabled="item.disabled">{{item.label}}</el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-
-        <el-divider content-position="left">登录信息</el-divider>
-        <el-form-item label="登录帐号" prop="account" v-if="title != '修改店铺管理'">
-          <el-input v-model="form.account" placeholder="请输入登录帐号" />
-        </el-form-item>
-        <!--        tips-->
-        <span class="tip-text" v-if="title !== '修改店铺管理'">请牢记登录账号,初试密码123456,请及时修改密码</span>
+    <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <!-- 基础信息 -->
+        <div class="form-section">
+          <div class="section-title">
+            <i class="el-icon-s-shop"></i>基础信息
+          </div>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="店铺名称" prop="storeName">
+                <el-input v-model="form.storeName" placeholder="请输入店铺名称" size="medium" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="电话" prop="phone">
+                <el-input v-model="form.phone" placeholder="请输入店铺电话" size="medium" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="企业全称" prop="fullName">
+                <el-input v-model="form.fullName" placeholder="请输入企业全称" size="medium" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="店铺编号" prop="storeNo">
+                <el-input v-model="form.storeNo" placeholder="请输入店铺编号" size="medium" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="店铺LOGO" prop="logoUrl">
+                <el-upload
+                  v-model="form.logoUrl"
+                  class="avatar-uploader"
+                  :action="uploadUrl"
+                  :show-file-list="false"
+                  :on-success="handleAvatarSuccess"
+                  :before-upload="beforeAvatarUpload">
+                  <img v-if="form.logoUrl" :src="form.logoUrl" class="avatar">
+                  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                </el-upload>
+                <div class="tip-text">建议尺寸:200×200px,支持JPG、PNG格式</div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="店铺介绍" prop="descs">
+                <el-input
+                  v-model="form.descs"
+                  placeholder="请输入店铺介绍"
+                  type="textarea"
+                  :rows="5"
+                  maxlength="200"
+                  show-word-limit />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="所属城市" prop="cityIds">
+                <el-cascader
+                  ref="citySelect"
+                  v-model="form.cityIds"
+                  :options="citys"
+                  :props="{ expandTrigger: 'hover' }"
+                  placeholder="请选择城市"
+                  style="width: 100%"
+                  @change="handleCityChange">
+                </el-cascader>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="详细地址" prop="address">
+                <el-input v-model="form.address" placeholder="请输入详细地址" size="medium" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="法人姓名" prop="legalPersonName">
+                <el-input v-model="form.legalPersonName" placeholder="请输入法人姓名" size="medium" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="统一信用代码" prop="unifiedSocialCreditCode">
+                <el-input v-model="form.unifiedSocialCreditCode" placeholder="请输入统一社会信用代码" size="medium" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-form-item label="营业范围" prop="businessScope">
+            <el-input
+              v-model="form.businessScope"
+              placeholder="请输入营业范围"
+              type="textarea"
+              :rows="3"
+              maxlength="500"
+              show-word-limit />
+          </el-form-item>
+        </div>
+
+        <!-- 资质证书信息 -->
+        <div class="form-section">
+          <div class="section-title">
+            <i class="el-icon-document"></i>资质证书信息
+          </div>
+
+          <div class="certificate-row">
+<!--            <div class="certificate-title">营业执照</div>-->
+            <el-row :gutter="20">
+              <el-col :span="12">
+                <el-form-item label="营业执照上传" prop="businessLicense">
+                  <el-upload
+                    class="avatar-uploader"
+                    :action="uploadUrl"
+                    :show-file-list="false"
+                    :on-success="(response, file) => handleFileSuccess(response, file, 'businessLicense')"
+                    :before-upload="beforeAvatarUpload">
+                    <img v-if="form.businessLicense" :src="form.businessLicense" class="avatar">
+                    <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                  </el-upload>
+                  <div class="tip-text">支持JPG、PNG、PDF格式,大小不超过5MB</div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="营业执照有效期" prop="businessLicenseExpire">
+                  <el-date-picker
+                    v-model="form.businessLicenseExpire"
+                    type="daterange"
+                    value-format="yyyy-MM-dd"
+                    range-separator="至"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                    style="width: 100%">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+
+          <!-- 其他证书部分可以根据需要取消注释 -->
+          <!--
+          <div v-if="this.$store.state.user.medicalMallConfig.medicalMall">
+            <div class="certificate-row">
+              <div class="certificate-title">药品经营许可证</div>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="许可证上传" prop="drugLicense">
+                    <el-upload
+                      class="avatar-uploader"
+                      :action="uploadUrl"
+                      :show-file-list="false"
+                      :on-success="(response, file) => handleFileSuccess(response, file, 'drugLicense')"
+                      :before-upload="beforeAvatarUpload">
+                      <img v-if="form.drugLicense" :src="form.drugLicense" class="avatar">
+                      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                    </el-upload>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="许可证有效期" prop="drugLicenseExpiry">
+                    <el-date-picker
+                      v-model="form.drugLicenseExpiry"
+                      type="daterange"
+                      value-format="yyyy-MM-dd"
+                      range-separator="至"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      style="width: 100%">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </div>
+
+            <div class="certificate-row">
+              <div class="certificate-title">医疗器械相关证书</div>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="1类器械生产备案" prop="medicalDevice1">
+                    <el-upload
+                      class="avatar-uploader"
+                      :action="uploadUrl"
+                      :show-file-list="false"
+                      :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice1')"
+                      :before-upload="beforeAvatarUpload">
+                      <img v-if="form.medicalDevice1" :src="form.medicalDevice1" class="avatar">
+                      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                    </el-upload>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="备案有效期" prop="medicalDevice1Expiry">
+                    <el-date-picker
+                      v-model="form.medicalDevice1Expiry"
+                      type="daterange"
+                      value-format="yyyy-MM-dd"
+                      range-separator="至"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      style="width: 100%">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </div>
+
+            <div class="certificate-row">
+              <div class="certificate-title">食品经营许可证</div>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="许可证上传" prop="foodLicense">
+                    <el-upload
+                      class="avatar-uploader"
+                      :action="uploadUrl"
+                      :show-file-list="false"
+                      :on-success="(response, file) => handleFileSuccess(response, file, 'foodLicense')"
+                      :before-upload="beforeAvatarUpload">
+                      <img v-if="form.foodLicense" :src="form.foodLicense" class="avatar">
+                      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                    </el-upload>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="许可证有效期" prop="foodLicenseExpiry">
+                    <el-date-picker
+                      v-model="form.foodLicenseExpiry"
+                      type="daterange"
+                      value-format="yyyy-MM-dd"
+                      range-separator="至"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      style="width: 100%">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </div>
+          </div>
+          -->
+        </div>
+
+        <!-- 店铺配置信息 (根据需要取消注释) -->
+        <!--
+        <div class="form-section">
+          <div class="section-title">
+            <i class="el-icon-setting"></i>店铺配置信息
+          </div>
+
+          <el-form-item label="退货地址" prop="refundAddress">
+            <el-input v-model="form.refundAddress" placeholder="请输入退货地址" size="medium" />
+          </el-form-item>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="退货电话" prop="refundPhone">
+                <el-input v-model="form.refundPhone" placeholder="请输入退货电话" size="medium" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="退货收货人" prop="refundConsignee">
+                <el-input v-model="form.refundConsignee" placeholder="请输入退货收货人" size="medium" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-form-item label="寄件人电话" prop="sendPhone">
+            <el-input v-model="form.sendPhone" placeholder="请输入寄件人电话" size="medium" />
+          </el-form-item>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="商品总数" prop="productCount">
+                <el-input-number
+                  v-model="form.productCount"
+                  :min="0"
+                  controls-position="right"
+                  style="width: 100%">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="销量" prop="salesCount">
+                <el-input-number
+                  v-model="form.salesCount"
+                  :min="0"
+                  controls-position="right"
+                  style="width: 100%">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="累计金额" prop="totalMoney">
+                <el-input-number
+                  v-model="form.totalMoney"
+                  :precision="2"
+                  :step="0.1"
+                  controls-position="right"
+                  style="width: 100%">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="分佣方式" prop="brokerageType">
+                <el-radio-group v-model="form.brokerageType">
+                  <el-radio label="1">每盒</el-radio>
+                  <el-radio label="2">总价</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+          </el-row>
+-->
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="状态">
+                <el-radio-group v-model="form.status">
+                  <el-radio
+                    v-for="dict in statusOptions"
+                    :key="dict.dictValue"
+                    :label="parseInt(dict.dictValue)"
+                  >{{dict.dictLabel}}</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+<!--            <el-col :span="12">
+              <el-form-item label="配送方式" prop="shippingType">
+                <el-checkbox-group v-model="form.shippingType" size="medium">
+                  <el-checkbox
+                    v-for="(item, index) in shippingTypeOptions"
+                    :key="index"
+                    :label="item.value"
+                    :disabled="item.disabled">{{item.label}}</el-checkbox>
+                </el-checkbox-group>
+              </el-form-item>
+            </el-col>-->
+          </el-row>
+<!--        </div>-->
+
+
+        <!-- 登录信息 (根据需要取消注释) -->
+        <!--
+        <div class="form-section">
+          <div class="section-title">
+            <i class="el-icon-user"></i>登录信息
+          </div>
+
+          <el-form-item label="登录帐号" prop="account" v-if="title != '修改店铺管理'">
+            <el-input v-model="form.account" placeholder="请输入登录帐号" size="medium" />
+          </el-form-item>
+
+          <span class="tip-text" v-if="title !== '修改店铺管理'">请及时修改密码,初始密码:XyzAbc~12</span>
+        </div>
+        -->
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
+
+      <div class="form-footer" slot="footer">
+        <el-button @click="cancel" size="medium">取 消</el-button>
+        <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
       </div>
     </el-dialog>
     <el-drawer
@@ -641,7 +662,7 @@ export default {
           { required: true, message: "店铺名称不能为空", trigger: "blur" }
         ],
         fullName: [
-          { required: true, message: "店铺称不能为空", trigger: "blur" }
+          { required: true, message: "店铺称不能为空", trigger: "blur" }
         ],
         businessLicenseExpire: [
           { required: true, message: "营业执照失效日期不能为空", trigger: "blur" }
@@ -664,7 +685,7 @@ export default {
         shippingType: [
           { required: true, message: "配送方式不能为空", trigger: "blur" }
         ],
-        account: [
+      /*  account: [
           { required: true, message: "登录账号不能为空", trigger: "blur" }
         ],
         brokerageType: [
@@ -681,7 +702,7 @@ export default {
         ],
         sendPhone: [
           { required: true, message: "寄件人电话不能为空", trigger: "blur" },
-        ],
+        ],*/
         phone: [
           {
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
@@ -691,6 +712,9 @@ export default {
           }
         ],
         // 新增字段校验规则
+        storeNo: [
+          { required: true, message: "店铺编号不能为空", trigger: "blur" }
+        ],
         enterpriseShortName: [
           { required: true, message: "企业简称不能为空", trigger: "blur" }
         ],
@@ -712,10 +736,10 @@ export default {
         businessScope: [
           { required: true, message: "营业范围不能为空", trigger: "blur" }
         ],
-        password: [
+      /*  password: [
           { required: true, message: "新密码不能为空", trigger: "blur" },
           { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" }
-        ],
+        ],*/
       }
     };
   },
@@ -1046,7 +1070,7 @@ export default {
     },
     handleRefresh(row) {
       const storeIds = row.storeId || this.ids;
-      this.$confirm('是否确认重置店铺管理编号为"' + storeIds + '"的密码为123456?', "警告", {
+      this.$confirm('是否确认重置店铺管理编号为"' + storeIds + '"的密码为XyzAbc~12 ', "警告", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"
@@ -1054,7 +1078,7 @@ export default {
         return refreshPasWod(storeIds);
       }).then(() => {
         this.getList();
-        this.msgSuccess("删除成功");
+        this.msgSuccess("修改成功");
       }).catch(() => {
       });
     },
@@ -1094,9 +1118,6 @@ export default {
 .avatar-uploader-icon {
   font-size: 28px;
   color: #8c939d;
-  width: 150px;
-  height: 150px;
-  line-height: 150px;
   text-align: center;
 }
 
@@ -1104,4 +1125,97 @@ export default {
   font-size: 16px;
   font-weight: bold;
 }
+.store-form-container {
+  padding: 20px;
+  background-color: #f5f7fa;
+}
+
+.form-section {
+  background: #fff;
+  border-radius: 8px;
+  padding: 20px;
+  margin-bottom: 20px;
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+
+.section-title {
+  font-size: 16px;
+  font-weight: 600;
+  color: #303133;
+  margin-bottom: 20px;
+  padding-bottom: 10px;
+  border-bottom: 1px solid #ebeef5;
+  display: flex;
+  align-items: center;
+}
+
+.section-title i {
+  margin-right: 8px;
+  color: #409EFF;
+}
+
+.el-row {
+  margin-bottom: 20px;
+}
+
+.el-row:last-child {
+  margin-bottom: 0;
+}
+
+.avatar-uploader {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+  width: 100%;
+  height: 150px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.avatar-uploader:hover {
+  border-color: #409EFF;
+}
+
+/*.avatar-uploader-icon {*/
+/*  font-size: 28px;*/
+/*  color: #8c939d;*/
+/*}*/
+
+.avatar {
+  max-width: 100%;
+  max-height: 100%;
+  display: block;
+}
+
+.form-footer {
+  text-align: center;
+  margin-top: 30px;
+  padding-top: 20px;
+  border-top: 1px solid #ebeef5;
+}
+
+.tip-text {
+  font-size: 12px;
+  color: #909399;
+  display: block;
+  margin-top: 10px;
+}
+
+.certificate-row {
+  margin-bottom: 30px;
+}
+
+.certificate-title {
+  font-size: 14px;
+  font-weight: 500;
+  color: #606266;
+  margin-bottom: 15px;
+}
+
+.el-divider__text {
+  background-color: #f5f7fa;
+}
 </style>