doum
2025-12-10 559f6fcd685d2144e931d2c4e56cbe38c2308d70
admin/src/views/business/shop.vue
@@ -2,50 +2,28 @@
  <TableLayout :permissions="['business:shop:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="店铺名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入店铺名称" @keypress.enter.native="search"></el-input>
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="店铺状态" prop="status">
      <el-form-item label="登录账号" prop="name">
        <el-input v-model="searchForm.username" placeholder="请输入登录账号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="销售模式" prop="saleType" >
        <!-- 0正常 1禁用 -->
        <el-select
          v-model="searchForm.status"
          placeholder="请选择店铺状态"
        >
          <el-option
            :key="0"
            :value="0"
            label="正常"
          ></el-option>
          <el-option
            :key="1"
            :value="1"
            label="禁用"
          ></el-option>
        <el-select     v-model="searchForm.saleType"  placeholder="销售模式"  @change="search"  >
          <el-option  :key="0" :value="0"  label="平台铺货"  ></el-option>
          <el-option   :key="1" :value="1" label="自主采购"  ></el-option>
        </el-select>
        <!-- <el-input v-model="searchForm.status" placeholder="请输入状态0正常 1禁用" @keypress.enter.native="search"></el-input> -->
      </el-form-item>
      <el-form-item label="推荐" prop="isrec">
        <!-- 0否 1是 -->
        <el-select
          v-model="searchForm.isrec"
          placeholder="请选择店铺状态"
        >
          <el-option
            :key="0"
            :value="0"
            label="否"
          ></el-option>
          <el-option
            :key="1"
            :value="1"
            label="是"
          ></el-option>
      <el-form-item label="状态" prop="status">
        <!-- 0正常 1禁用 -->
        <el-select     v-model="searchForm.status"  placeholder="请选择状态"    @change="search"   >
          <el-option  :key="0" :value="0"  label="正常"  ></el-option>
          <el-option   :key="1" :value="1" label="禁用"  ></el-option>
        </el-select>
        <!-- <el-input v-model="searchForm.isrec" placeholder="请输入是否推荐0否 1是" @keypress.enter.native="search"></el-input> -->
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <!-- <el-button type="primary" @click="showDetail">搜索</el-button> -->
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
@@ -63,37 +41,44 @@
        @selection-change="handleSelectionChange"
      >
        <!-- <el-table-column type="selection" width="55"></el-table-column> -->
        <el-table-column prop="name" label="店铺名称" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="imgurl" label="店铺LOGO" align="center" min-width="100px">
        <el-table-column prop="name" label="名称" fixed align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-image :scr="row.imgFullUrl + row.imgurl" :preview-src-list="[row.imgFullUrl + row.imgurl]"></el-image>
            <el-button type="text" @click="showDetail(row)">{{row.name}}</el-button>
          </template>
        </el-table-column>
        <el-table-column prop="addr" label="地址" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="code" label="门店ID" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="integral" label="现有积分" align="center" min-width="100px">
          <template slot-scope="{row}">
            <span class="orange">{{(row.integral || 0).toFixed(0)}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="totalIntegral" label="累计积分" align="center" min-width="100px">
          <template slot-scope="{row}">
            <span class="orange">  {{(row.totalIntegral || 0).toFixed(0)}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="username" label="登录账号" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="bigAreaName" label="所属区域" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="areaFullName" label="省市区" align="center" min-width="150px" show-overflow-tooltip>
          <template slot-scope="{row}">
            <span v-if="row.areas!=null">{{(row.areas.provinceName||'') + (row.areas.cityName||'') + (row.areas.name||'')}}</span>
          </template>
        </el-table-column>
<!--        <el-table-column prop="imgurl" label="门头图" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-image v-if=" row.imgurl" :scr="row.imgFullUrl + row.imgurl" :preview-src-list="[row.imgFullUrl + row.imgurl]"></el-image>
          </template>
        </el-table-column>-->
        <el-table-column prop="addr" label="详细地址" align="center" min-width="150px" show-overflow-tooltip></el-table-column>
        <el-table-column prop="realname" label="联系人" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="联系电话" align="center" min-width="150px"></el-table-column>
        <el-table-column prop="saleType"  label="销售模式" align="center" min-width="150px">
          <template slot-scope="{row}">
            {{ row.saleType == 1?'自主采购':'平台铺货'}}
          </template>
        </el-table-column>
        <el-table-column prop="createDate" label="创建时间" align="center" min-width="140px"></el-table-column>
        <el-table-column label="负责人" align="center" min-width="150px">
          <template slot-scope="{row}">
            {{ `${row.nickName} ${row.memberPhone}` }}
          </template>
        </el-table-column>
        <el-table-column label="经销商数据" align="center" min-width="150px">
          <template slot-scope="{row}">
            <el-button type="text" @click="showDetail(row)">查看</el-button>
          </template>
        </el-table-column>
        <el-table-column prop="isrec" label="是否推荐" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-switch
              v-model="row.isrec"
              active-color="#13ce66"
              inactive-color="#999"
              :active-value="1"
              :inactive-value="0"
              @change="statusChange(row)"
            ></el-switch>
          </template>
        </el-table-column>
        <el-table-column prop="status" label="状态" align="center" min-width="100px">
        <el-table-column prop="status" label="状态" align="center" min-width="100px" fixed="right">
          <template slot-scope="{row}">
            <el-switch
              v-model="row.status"
@@ -105,38 +90,18 @@
            ></el-switch>
          </template>
        </el-table-column>
        <!-- <el-table-column prop="editor" label="更新人编码" min-width="100px"></el-table-column>
        <el-table-column prop="editDate" label="更新时间" min-width="100px"></el-table-column>
        <el-table-column prop="isdeleted" label="是否删除0否 1是" min-width="100px"></el-table-column>
        <el-table-column prop="remark" label="备注" min-width="100px"></el-table-column>
        <el-table-column prop="sex" label="性别 0男 1女 2未知" min-width="100px"></el-table-column>
        <el-table-column prop="idcard" label="身份证号" min-width="100px"></el-table-column>
        <el-table-column prop="idcardImg" label="身份证正面照" min-width="100px"></el-table-column>
        <el-table-column prop="idcardImgBack" label="身份证反面照" min-width="100px"></el-table-column>
        <el-table-column prop="businessImg" label="营业执照" min-width="100px"></el-table-column>
        <el-table-column prop="longitude" label="定位经度" min-width="100px"></el-table-column>
        <el-table-column prop="latitude" label="定位维度" min-width="100px"></el-table-column>
        <el-table-column prop="areaId" label="所属县区编码(关联areas)" min-width="100px"></el-table-column>
        <el-table-column prop="info" label="店铺描述" min-width="100px"></el-table-column>
        <el-table-column prop="origin" label="数据来源 0小程序申请 1后台录入" min-width="100px"></el-table-column>
        <el-table-column prop="memberId" label="用户编码(关联member表)" min-width="100px"></el-table-column>
        <el-table-column prop="applyId" label="申请编码(关联shop_apply表)" min-width="100px"></el-table-column>
        <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column>
        <el-table-column prop="looknum" label="总浏览量" min-width="100px"></el-table-column>
        <el-table-column prop="startTime" label="营业开始时间" min-width="100px"></el-table-column>
        <el-table-column prop="endTime" label="营业结束时间" min-width="100px"></el-table-column>
        <el-table-column prop="brandStory" label="品牌故事" min-width="100px"></el-table-column> -->
        <el-table-column
          v-if="containPermissions(['business:shop:update', 'business:shop:delete'])"
          label="操作"
          min-width="120"
          min-width="200"
          fixed="right"
          align="center"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaShopWindow.open('编辑店铺', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:shop:delete']">删除</el-button>
            <el-button type="text" @click="$refs.operaShopWindow.open('编辑经销商', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">编辑</el-button>
            <el-button type="text" @click="resetPwd(row)" icon="el-icon-edit"  v-permissions="['business:shop:update']">重置密码</el-button>
            <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:shop:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -150,6 +115,7 @@
    <!-- 新建/修改 -->
    <OperaShopWindow ref="operaShopWindow" @success="handlePageChange"/>
    <OperaShopDetailWindow ref="operaShopDetailWindow" />
    <ResetPwdShopWindow ref="resetPwdWindow"/>
  </TableLayout>
</template>
@@ -159,19 +125,22 @@
import Pagination from '@/components/common/Pagination'
import OperaShopWindow from '@/components/business/OperaShopWindow'
import OperaShopDetailWindow from '@/components/business/OperaShopDetailWindow'
import { updateIsRecById } from '@/api/business/shop'
import { resetPwd, updateIsRecById } from '@/api/business/shop'
import ResetPwdShopWindow from '@/components/business/ResetPwdShopWindow'
export default {
  name: 'Shop',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaShopWindow, OperaShopDetailWindow },
  components: { TableLayout, Pagination, OperaShopWindow, OperaShopDetailWindow, ResetPwdShopWindow },
  data () {
    return {
      // 搜索
      searchForm: {
        name: '',
        username: '',
        status: '',
        isrec: '',
        saleType: '',
        isrec: ''
      }
    }
  },
@@ -185,7 +154,24 @@
    this.search()
  },
  methods: {
    statusChange(row) {
    resetPwd (row) {
      this.$dialog.messageWaring('确认重置该经销商【' + row.name + '】的登录密码吗?')
        .then(() => {
          resetPwd({
            id: row.id
          })
            .then(() => {
              this.$tip.apiSuccess('密码重置成功')
            })
            .catch(e => {
              this.$tip.apiFailed(e)
            })
            .finally(() => {
            })
        })
    },
    statusChange (row) {
      updateIsRecById(row)
        .then(() => {
          this.$message.success('操作成功')
@@ -197,9 +183,9 @@
          this.handlePageChange()
        })
    },
    showDetail(row) {
    showDetail (row) {
      this.$refs.operaShopDetailWindow.open('店铺详情', row)
    }
  },
  }
}
</script>