4436 lines
135 KiB
Vue
4436 lines
135 KiB
Vue
<template>
|
||
<div>
|
||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||
<el-tab-pane label="师傅列表" name="first">
|
||
<div style="display: inline-block">
|
||
<!-- <span>服务项目:</span>
|
||
<el-select v-model="massageTypeId" style="width:150px;margin-left: 10px;"
|
||
@change="animeDat2(massageTypeId)">
|
||
<el-option v-for="item in homeData1" :key="item.massageTypeId" :label="item.title"
|
||
:value="item.massageTypeId">
|
||
</el-option>
|
||
</el-select> -->
|
||
<!-- <span>状态:</span>
|
||
<el-select v-model="statusId" style="width:150px;margin-left: 10px;" @change="animeDat2(status)">
|
||
<el-option v-for="item in statuss" :key="item.id" :label="item.title" :value="item.id">
|
||
</el-option>
|
||
</el-select> -->
|
||
<div style="position: relative; display: inline-block; margin: 5px">
|
||
<span>项目类型:</span>
|
||
<el-select
|
||
v-model="classifyId"
|
||
style="width: 150px; margin-left: 10px"
|
||
@change="phoneSelect()"
|
||
>
|
||
<el-option
|
||
v-for="item in fwData"
|
||
:key="item.id"
|
||
:label="item.value"
|
||
:value="item.id"
|
||
>
|
||
</el-option> </el-select
|
||
>
|
||
</div>
|
||
<div style="position: relative; display: inline-block">
|
||
<span>师傅名称:</span>
|
||
<el-input
|
||
style="width: 200px"
|
||
@keydown.enter.native="phoneSelect"
|
||
placeholder="请输入师傅名称"
|
||
v-model="artificerName"
|
||
>
|
||
</el-input
|
||
>
|
||
</div>
|
||
<div style="position: relative; display: inline-block">
|
||
<span>手机号:</span>
|
||
<el-input
|
||
style="width: 200px"
|
||
@keydown.enter.native="phoneSelect"
|
||
placeholder="请输入手机号"
|
||
v-model="phoneT"
|
||
>
|
||
</el-input
|
||
>
|
||
</div>
|
||
<div style="position: relative; display: inline-block">
|
||
<span>城市:</span>
|
||
<el-input
|
||
style="width: 200px"
|
||
@keydown.enter.native="phoneSelect"
|
||
placeholder="请输入城市"
|
||
v-model="citys"
|
||
>
|
||
</el-input
|
||
>
|
||
</div>
|
||
<el-button
|
||
style="margin: 10px"
|
||
size="mini"
|
||
type="primary"
|
||
icon="document"
|
||
@click="phoneSelect"
|
||
>查询
|
||
</el-button>
|
||
<el-button
|
||
style="margin: 10px"
|
||
size="mini"
|
||
type="primary"
|
||
icon="document"
|
||
@click="cleans2"
|
||
>重置 </el-button
|
||
>
|
||
<!-- <el-button style="margin: 10px 0;" :disabled="!isAuth('locality:add')" size="mini" type="primary"
|
||
icon="document" @click="choiaddNotice()">添加任务</el-button> -->
|
||
</div>
|
||
<div style="float: right; margin-right: 2%"></div>
|
||
<el-table v-loading="tableDataLoading" :data="choicenData.list">
|
||
<el-table-column
|
||
prop="artificerId"
|
||
label="编号"
|
||
width="80"
|
||
fixed="left"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column prop="classifyName" label="项目类型" width="150">
|
||
</el-table-column>
|
||
<el-table-column prop="artificerName" label="师傅名称" fixed="left">
|
||
<template slot-scope="scope">
|
||
<span
|
||
style="color: #4f9dec; cursor: pointer"
|
||
@click="updatesvideo(scope.row)"
|
||
v-text="scope.row.artificerName"
|
||
></span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="phone" width="120" label="手机号">
|
||
<template slot-scope="scope">
|
||
<span>{{ scope.row.phone ? scope.row.phone : "未绑定" }}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="rate" label="师傅抽成" width="150">
|
||
<template slot-scope="scope">
|
||
<span>{{ scope.row.rate ? scope.row.rate : "0" }}</span>
|
||
<el-button
|
||
size="mini"
|
||
:disabled="!isAuth('userList:updatebl')"
|
||
style="color: #4f9dec; background: #fff; border: none"
|
||
@click="xiugai(scope.row)"
|
||
>
|
||
修改</el-button
|
||
>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="ynJfgz" label="是否参与积分计算规则">
|
||
<template slot-scope="scope">
|
||
<span style="color: #13ce66" v-if="scope.row.ynJfgz === 1"
|
||
>参与</span
|
||
>
|
||
<span style="color: #ff4949" v-else>不参与</span>
|
||
<el-switch v-model="scope.row.ynJfgz" @change="changeJfgz(scope.row.ynJfgz,scope.row.userId)"
|
||
:active-value="openValue3" :disabled="!isAuth('locality:update')"
|
||
:inactive-value="closeValue3" active-color="#13ce66" inactive-color="#ff4949">
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="technicianType" label="技师类型" width="150">
|
||
<template slot-scope="scope">
|
||
<!-- <span>{{ scope.row.technicianType }}</span> -->
|
||
<span>{{ getVipText(scope.row.technicianType) }}</span>
|
||
<el-button
|
||
size="mini"
|
||
:disabled="!isAuth('userList:updatebl')"
|
||
style="color: #4f9dec; background: #fff; border: none"
|
||
@click="xiugaiTecType(scope.row)"
|
||
>
|
||
修改</el-button
|
||
>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="artificerImg" label="师傅图片">
|
||
<template slot-scope="scope">
|
||
<div
|
||
v-if="scope.row.artificerImg && scope.row.artificerImg != ''"
|
||
style="display: inline-block; margin: 3px"
|
||
>
|
||
<el-popover placement="top-start" title="" trigger="hover">
|
||
<img
|
||
style="width: 50px; height: 50px"
|
||
:src="scope.row.artificerImg"
|
||
alt=""
|
||
slot="reference"
|
||
/>
|
||
<img
|
||
style="width: 300px; height: auto"
|
||
:src="scope.row.artificerImg"
|
||
alt=""
|
||
/>
|
||
</el-popover>
|
||
</div>
|
||
<span v-else>暂无图片</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="lifePhoto" label="生活照" width="250">
|
||
<template slot-scope="scope">
|
||
<div
|
||
v-for="(item, index) in scope.row.lifePhoto"
|
||
:key="index"
|
||
style="display: inline-block; margin: 3px"
|
||
>
|
||
<el-popover placement="top-start" title="" trigger="hover">
|
||
<img
|
||
style="width: 50px; height: 50px"
|
||
:src="item"
|
||
alt=""
|
||
slot="reference"
|
||
/>
|
||
<img style="width: 300px; height: auto" :src="item" alt="" />
|
||
</el-popover>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="certificate" label="师傅证书" width="250">
|
||
<template slot-scope="scope">
|
||
<div
|
||
v-for="(item, index) in scope.row.certificate"
|
||
:key="index"
|
||
style="display: inline-block; margin: 3px"
|
||
>
|
||
<el-popover placement="top-start" title="" trigger="hover">
|
||
<img
|
||
style="width: 50px; height: 50px"
|
||
:src="item"
|
||
alt=""
|
||
slot="reference"
|
||
/>
|
||
<img style="width: 300px; height: auto" :src="item" alt="" />
|
||
</el-popover>
|
||
</div>
|
||
</template>
|
||
</el-table-column> -->
|
||
<el-table-column prop="content" label="描述" width="200">
|
||
</el-table-column>
|
||
<el-table-column prop="city" label="城市" width="120">
|
||
</el-table-column>
|
||
<el-table-column prop="longitude" label="经度" width="150">
|
||
</el-table-column>
|
||
<el-table-column prop="latitude" label="纬度" width="150">
|
||
</el-table-column>
|
||
<el-table-column prop="ordersCount" label="完成订单数" width="80">
|
||
</el-table-column>
|
||
<el-table-column prop="creditScore" label="信用分" width="80">
|
||
</el-table-column>
|
||
<el-table-column prop="ordersScore" label="服务分" width="80">
|
||
</el-table-column>
|
||
|
||
<!-- <el-table-column prop="createTime" label="创建时间" width="180">
|
||
</el-table-column> -->
|
||
<el-table-column prop="status " label="在线状态" fixed="right">
|
||
<template slot-scope="scope">
|
||
<span style="color: #13ce66" v-if="scope.row.status === 1"
|
||
>上线</span
|
||
>
|
||
<span style="color: #ff4949" v-else>休息</span>
|
||
<el-switch v-model="scope.row.status" @change="changeS(scope.row.status,scope.row.userId)"
|
||
:active-value="openValue" :disabled="!isAuth('locality:update')"
|
||
:inactive-value="closeValue" active-color="#13ce66" inactive-color="#ff4949">
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="accountNumberStauts"
|
||
label="账号状态"
|
||
width="80"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="status"
|
||
label="是否优选"
|
||
fixed="right"
|
||
width="80"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-switch
|
||
v-model="scope.row.isGoods"
|
||
@change="changeY(scope.row.isGoods, scope.row.artificerId)"
|
||
:active-value="openValue"
|
||
:disabled="!isAuth('locality:update')"
|
||
:inactive-value="closeValue"
|
||
active-color="#13ce66"
|
||
inactive-color="#ff4949"
|
||
>
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="isHot"
|
||
label="是否热度最高"
|
||
fixed="right"
|
||
width="80"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-switch
|
||
v-model="scope.row.isHot"
|
||
@change="changeR(scope.row.isHot, scope.row.artificerId)"
|
||
:active-value="openValue"
|
||
:disabled="!isAuth('locality:update')"
|
||
:inactive-value="closeValue"
|
||
active-color="#13ce66"
|
||
inactive-color="#ff4949"
|
||
>
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="isStart"
|
||
label="是否明星技师"
|
||
fixed="right"
|
||
width="80"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-switch
|
||
v-model="scope.row.isStart"
|
||
@change="changeM(scope.row.isStart, scope.row.artificerId)"
|
||
:active-value="openValue"
|
||
:disabled="!isAuth('locality:update')"
|
||
:inactive-value="closeValue"
|
||
active-color="#13ce66"
|
||
inactive-color="#ff4949"
|
||
>
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="操作" prop="id" width="250" fixed="right">
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
size="mini"
|
||
type="warning"
|
||
style="margin: 5px"
|
||
@click="shenhe(scope.row)"
|
||
>服务项目
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
type="warning"
|
||
style="margin: 5px"
|
||
@click="openMaterialPackage(scope.row)"
|
||
>物料包
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
@click="quxiaoJs(scope.row)"
|
||
style="margin: 5px"
|
||
:disabled="!isAuth('userList:updateJs')"
|
||
plain
|
||
>取消师傅</el-button
|
||
>
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
style="margin: 5px"
|
||
@click="plCompile(scope.row)"
|
||
>评价
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
style="margin: 5px"
|
||
@click="xinyongBtn(scope.row)"
|
||
>信用分明细
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
style="margin: 5px"
|
||
@click="removeDisabled(scope.row)"
|
||
>解除停牌
|
||
</el-button>
|
||
|
||
<!-- <el-button size="mini" type="primary" style="margin: 5px;"
|
||
:disabled="!isAuth('locality:update')" @click="choiCompile(scope.$index, scope.row)">修改
|
||
</el-button> -->
|
||
<!-- <el-button size="mini" type="danger" style="margin: 5px;"
|
||
:disabled="!isAuth('locality:delete')" @click="choidelete(scope.row)">删除
|
||
</el-button> -->
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div style="text-align: center; margin-top: 10px; float: right">
|
||
<el-pagination
|
||
@size-change="handleSizeChange1"
|
||
@current-change="handleCurrentChange1"
|
||
:page-sizes="[10, 20, 30, 40]"
|
||
:page-size="size"
|
||
:current-page="page"
|
||
layout="total,sizes, prev, pager, next,jumper"
|
||
:total="choicenData.totalCount"
|
||
>
|
||
</el-pagination>
|
||
</div>
|
||
</el-tab-pane>
|
||
|
||
<el-dialog
|
||
title="修改物料包数量"
|
||
:visible.sync="editMaterialPackageCountStatus"
|
||
center
|
||
>
|
||
<el-form
|
||
:model="ruleForm"
|
||
:rules="rules"
|
||
ref="ruleForm"
|
||
label-width="100px"
|
||
class="demo-ruleForm"
|
||
>
|
||
<div>
|
||
<el-form-item label="修改类型:">
|
||
<el-radio-group v-model="ruleForm.materialPackageCountType">
|
||
<el-radio :label="1">添加</el-radio>
|
||
<el-radio
|
||
:label="2"
|
||
:disabled="
|
||
materialPackageCountTypeStatus ||
|
||
ruleForm.materialPackageCount >
|
||
editMaterialPackageCountRow.residue
|
||
"
|
||
>减少</el-radio
|
||
>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<el-form-item label="物料包数量:" prop="materialPackageRules">
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="ruleForm.materialPackageCount"
|
||
type="number"
|
||
:min="0"
|
||
:controls="false"
|
||
placeholder="请输入物料包数量"
|
||
></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
</el-form>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="editMaterialPackageCountStatus = false"
|
||
>取 消</el-button
|
||
>
|
||
<el-button type="primary" @click="submitMaterialPackageCount"
|
||
>确 定</el-button
|
||
>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!-- 添加/修改师傅弹框 -->
|
||
<el-dialog
|
||
:title="renwuTitles"
|
||
customClass="customWidth"
|
||
:visible.sync="dialogFormVisible5"
|
||
center
|
||
>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>服务项目:</span
|
||
>
|
||
<el-checkbox-group
|
||
v-model="checkList"
|
||
@change="onChang"
|
||
style="display: inline"
|
||
>
|
||
<el-checkbox
|
||
v-for="(item, index) in homeData"
|
||
:key="index"
|
||
:label="item.gameName"
|
||
>
|
||
{{ item.gameName }}
|
||
</el-checkbox>
|
||
</el-checkbox-group>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>发布人:</span
|
||
>
|
||
<el-input
|
||
v-model="nickName1"
|
||
@focus="userselect"
|
||
style="width: 45%"
|
||
placeholder="请选择发布人"
|
||
>
|
||
</el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>标题:</span
|
||
>
|
||
<el-input
|
||
v-model="myLevel"
|
||
style="width: 45%"
|
||
placeholder="请输入标题"
|
||
>
|
||
</el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px; display: flex">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>主页图:</span
|
||
>
|
||
<div
|
||
style="
|
||
width: 148px;
|
||
height: 148px;
|
||
border: 1px dashed #c0ccda;
|
||
border-radius: 6px;
|
||
text-align: center;
|
||
line-height: 148px;
|
||
"
|
||
>
|
||
<el-upload
|
||
class="avatar-uploader"
|
||
v-model="headImg"
|
||
:action="uploadUrl"
|
||
:show-file-list="false"
|
||
:on-success="handleAvatarSuccess5"
|
||
:on-progress="onprogress"
|
||
>
|
||
<img
|
||
v-if="headImg != '' && percentage == 100"
|
||
:src="headImg"
|
||
class="avatar"
|
||
style="border-radius: 6px; width: 148px; height: 148px"
|
||
/>
|
||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||
<el-progress
|
||
v-if="percentage > 0 && percentage < 100"
|
||
type="circle"
|
||
:percentage="percentage"
|
||
>
|
||
</el-progress>
|
||
</el-upload>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style="margin-bottom: 10px; display: flex"
|
||
v-if="authentication == 1"
|
||
>
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>资格证书:</span
|
||
>
|
||
<div
|
||
class="imgs"
|
||
v-for="(item, index) in certificateImg"
|
||
:key="index"
|
||
>
|
||
<img width="100%" class="images" height="100%" :src="item" alt="" />
|
||
<span class="dels">
|
||
<i class="el-icon-delete" @click="clear1(index)"></i>
|
||
</span>
|
||
</div>
|
||
<div class="imgs" style="width: 50%">
|
||
<el-upload
|
||
:action="uploadWatermarkUrl"
|
||
list-type="picture-card"
|
||
:show-file-list="false"
|
||
:on-success="handleUploadSuccess1"
|
||
:on-progress="onprogress1"
|
||
>
|
||
<el-progress
|
||
v-if="percentage1 > 0 && percentage1 < 100"
|
||
type="circle"
|
||
:percentage="percentage1"
|
||
></el-progress>
|
||
<i v-else class="el-icon-plus"></i>
|
||
</el-upload>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style="margin-bottom: 10px; display: flex"
|
||
v-if="authentication == 1"
|
||
>
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>工作照片:</span
|
||
>
|
||
<div class="imgs" v-for="(item, index) in workImg" :key="index">
|
||
<img width="100%" class="images" height="100%" :src="item" alt="" />
|
||
<span class="dels">
|
||
<i class="el-icon-delete" @click="clear2(index)"></i>
|
||
</span>
|
||
</div>
|
||
<div class="imgs" style="width: 50%">
|
||
<el-upload
|
||
:action="uploadUrl"
|
||
list-type="picture-card"
|
||
:show-file-list="false"
|
||
:on-success="handleUploadSuccess2"
|
||
:on-progress="onprogress1"
|
||
>
|
||
<el-progress
|
||
v-if="percentage1 > 0 && percentage1 < 100"
|
||
type="circle"
|
||
:percentage="percentage1"
|
||
></el-progress>
|
||
<i v-else class="el-icon-plus"></i>
|
||
</el-upload>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style="margin-bottom: 10px; display: flex"
|
||
v-if="authentication == 2"
|
||
>
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目详情图:</span
|
||
>
|
||
<div class="imgs" v-for="(item, index) in contentImg" :key="index">
|
||
<img width="100%" class="images" height="100%" :src="item" alt="" />
|
||
<span class="dels">
|
||
<i class="el-icon-delete" @click="clear3(index)"></i>
|
||
</span>
|
||
</div>
|
||
<div class="imgs" style="width: 50%">
|
||
<el-upload
|
||
:action="uploadUrl"
|
||
list-type="picture-card"
|
||
:show-file-list="false"
|
||
:on-success="handleUploadSuccess3"
|
||
:on-progress="onprogress1"
|
||
>
|
||
<el-progress
|
||
v-if="percentage1 > 0 && percentage1 < 100"
|
||
type="circle"
|
||
:percentage="percentage1"
|
||
></el-progress>
|
||
<i v-else class="el-icon-plus"></i>
|
||
</el-upload>
|
||
</div>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>期望薪资:</span
|
||
>
|
||
<el-input
|
||
v-model="money"
|
||
type="number"
|
||
style="width: 45%"
|
||
min="0"
|
||
placeholder="请输入期望薪资"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>工作经验:</span
|
||
>
|
||
<el-input
|
||
v-model="orderLevel"
|
||
type="text"
|
||
style="width: 45%"
|
||
placeholder="请输入工作经验"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>技能:</span
|
||
>
|
||
<el-input
|
||
v-model="memberMoney"
|
||
style="width: 45%"
|
||
placeholder="请输入技能"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span
|
||
style="
|
||
width: 200px;
|
||
display: inline-block;
|
||
text-align: right;
|
||
position: relative;
|
||
bottom: 26px;
|
||
"
|
||
>描述:</span
|
||
>
|
||
<el-input
|
||
v-model="describes"
|
||
type="textarea"
|
||
:rows="2"
|
||
style="width: 45%"
|
||
placeholder="请输入特长描述"
|
||
>
|
||
</el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>服务地区:</span
|
||
>
|
||
<el-cascader
|
||
style="width: 45%"
|
||
size="large"
|
||
:options="options"
|
||
ref="cascaderAddr"
|
||
v-model="storeAddress"
|
||
:placeholder="storeAddre"
|
||
@change="handleChange55"
|
||
:value="storeAddre"
|
||
>
|
||
</el-cascader>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>纬度:</span
|
||
>
|
||
<el-input
|
||
v-model="latitude"
|
||
style="width: 45%"
|
||
placeholder="请输入纬度"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>经度:</span
|
||
>
|
||
<el-input
|
||
v-model="longitude"
|
||
style="width: 45%"
|
||
placeholder="请输入经度"
|
||
></el-input>
|
||
</div>
|
||
<div>
|
||
<div
|
||
id="container1"
|
||
style="width: 80%; height: 500px; margin-left: 10%"
|
||
></div>
|
||
</div>
|
||
<div
|
||
slot="footer"
|
||
class="dialog-footer"
|
||
style="margin-top: 30px; text-align: center"
|
||
>
|
||
<el-button @click="prev">取 消</el-button>
|
||
<el-button type="primary" @click="addmissionNoticeTo()"
|
||
>确 定</el-button
|
||
>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 用户列表 -->
|
||
<el-dialog title="用户列表" :visible.sync="dialogFormVisible3" center>
|
||
<div style="margin: 2% 0; display: inline-block">
|
||
<el-input
|
||
style="width: 150px"
|
||
@keydown.enter.native="userclick"
|
||
clearable
|
||
placeholder="请输入手机号"
|
||
v-model="phone1"
|
||
></el-input
|
||
>
|
||
<el-input
|
||
style="width: 150px"
|
||
@keydown.enter.native="userclick"
|
||
clearable
|
||
placeholder="请输入昵称"
|
||
v-model="nickName2"
|
||
></el-input>
|
||
<el-button
|
||
style="margin-left: 15px"
|
||
size="mini"
|
||
type="primary"
|
||
icon="document"
|
||
@click="userclick"
|
||
>
|
||
查询
|
||
</el-button>
|
||
<el-button
|
||
style="margin-left: 15px"
|
||
size="mini"
|
||
type="primary"
|
||
icon="document"
|
||
@click="userclose"
|
||
>
|
||
重置
|
||
</el-button>
|
||
</div>
|
||
<el-table
|
||
width="780px"
|
||
v-loading="tableDataLoading4"
|
||
:data="userIds.records"
|
||
>
|
||
<el-table-column fixed prop="nickName" width="220" label="昵称">
|
||
<template slot-scope="scope">
|
||
<span style="color: #f56c6c">{{
|
||
scope.row.userName ? scope.row.userName : "未设置"
|
||
}}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="phone" width="220" label="手机号">
|
||
<template slot-scope="scope">
|
||
<span>{{ scope.row.phone ? scope.row.phone : "未绑定" }}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="createTime" width="220" label="创建时间">
|
||
</el-table-column> -->
|
||
<!-- </el-table-column> -->
|
||
<el-table-column label="操作" fixed="right" width="250">
|
||
<template slot-scope="scope">
|
||
<el-button size="mini" type="primary" @click="confirm(scope.row)"
|
||
>确定
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div style="text-align: center; margin-top: 10px">
|
||
<el-pagination
|
||
@size-change="handleSizeChange2"
|
||
@current-change="handleCurrentChange2"
|
||
:page-sizes="[5, 10, 15, 20]"
|
||
:page-size="size1"
|
||
:current-page="page1"
|
||
layout="total,sizes, prev, pager, next,jumper"
|
||
:total="userIds.total"
|
||
>
|
||
</el-pagination>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 图片展示-->
|
||
<el-dialog title="图片" :visible.sync="dialogVisible" width="800px">
|
||
<span
|
||
v-if="imageUrl.length > 0"
|
||
v-for="(item, index) in imageUrl"
|
||
:key="index"
|
||
style=""
|
||
>
|
||
<!-- <el-image style = "width: 100px; height: 100px" :src = "item" :preview-src-list="imageUrl"></el-image>-->
|
||
<img
|
||
:src="item"
|
||
alt=""
|
||
style="
|
||
width: 45%;
|
||
height: 100%;
|
||
margin: 15px;
|
||
display: inline-block;
|
||
"
|
||
/>
|
||
</span>
|
||
<span v-else>暂无图片</span>
|
||
</el-dialog>
|
||
<!-- 服务项目弹框 -->
|
||
<el-dialog
|
||
title="服务项目"
|
||
:visible.sync="dialogFormVisible8"
|
||
center
|
||
width="80%"
|
||
>
|
||
<div>
|
||
<el-button
|
||
style="margin: 10px 0"
|
||
:disabled="!isAuth('locality:add')"
|
||
size="mini"
|
||
type="primary"
|
||
icon="document"
|
||
@click="choiadd()"
|
||
>添加项目</el-button
|
||
>
|
||
</div>
|
||
<el-table v-loading="tableDataLoading1" :data="tableData3">
|
||
<el-table-column
|
||
prop="massageTypeId"
|
||
label="编号"
|
||
width="80"
|
||
fixed="left"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="title"
|
||
label="项目名称"
|
||
width="100"
|
||
fixed="left"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column prop="massageImg" label="项目图片">
|
||
<template slot-scope="scope">
|
||
<img
|
||
v-if="scope.row.massageImg && scope.row.massageImg != ''"
|
||
:src="scope.row.massageImg"
|
||
width="40"
|
||
height="40"
|
||
/>
|
||
<span v-else>暂无图片</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="certificateImg" label="项目详情图" width="250">
|
||
<template slot-scope="scope">
|
||
<div v-if="scope.row.contentImg.length > 0">
|
||
<div
|
||
v-for="(item, index) in scope.row.contentImg"
|
||
:key="index"
|
||
style="display: inline-block; margin: 3px"
|
||
>
|
||
<el-popover placement="top-start" title="" trigger="hover">
|
||
<img
|
||
style="width: 50px; height: 50px"
|
||
:src="item"
|
||
alt=""
|
||
slot="reference"
|
||
/>
|
||
<img
|
||
style="width: 300px; height: auto"
|
||
:src="item"
|
||
alt=""
|
||
/>
|
||
</el-popover>
|
||
</div>
|
||
</div>
|
||
<div v-else>暂无图片</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="applyPeople" label="适用人群" width="300">
|
||
</el-table-column>
|
||
<el-table-column prop="region" label="性别要求" width="100">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.isSex == 0">不限制</span>
|
||
<span v-if="scope.row.isSex == 1">男</span>
|
||
<span v-if="scope.row.isSex == 2">女</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="region" label="城市" width="100">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.city">{{ scope.row.city }}</span>
|
||
<span v-else>不限</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="oldPrice" label="原价"> </el-table-column>
|
||
<el-table-column prop="price" label="现价"> </el-table-column>
|
||
<el-table-column prop="memberPrice" label="会员价"> </el-table-column>
|
||
<el-table-column prop="artificerPrice" label="师傅价">
|
||
</el-table-column>
|
||
<el-table-column prop="duration" label="时长(分钟)" width="100">
|
||
</el-table-column>
|
||
<el-table-column prop="labels" label="标签" width="200">
|
||
</el-table-column>
|
||
<el-table-column prop="sales" label="销量"> </el-table-column>
|
||
<!-- <el-table-column prop="content" label="详情" width="300">
|
||
</el-table-column> -->
|
||
<el-table-column prop="artificerMassageStatus" label="状态">
|
||
<template slot-scope="scope">
|
||
<el-switch
|
||
v-model="scope.row.artificerMassageStatus"
|
||
@change="
|
||
change(
|
||
scope.row.massageTypeId,
|
||
scope.row.artificerMassageStatus
|
||
)
|
||
"
|
||
:disabled="!isAuth('locality:update')"
|
||
:active-value="openValue1"
|
||
:inactive-value="closeValue1"
|
||
active-color="#13ce66"
|
||
inactive-color="#ff4949"
|
||
>
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="createTime" label="创建时间" width="160">
|
||
</el-table-column> -->
|
||
<el-table-column
|
||
label="操作"
|
||
prop="id"
|
||
width="250"
|
||
fixed="right"
|
||
align="center"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
size="mini"
|
||
type="danger"
|
||
:disabled="!isAuth('locality:delete')"
|
||
@click="classListdelete(scope.row)"
|
||
>删除
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</el-dialog>
|
||
|
||
<!-- 物料包相关 -->
|
||
<el-dialog
|
||
title="物料包"
|
||
:visible.sync="MaterialpackageStatus"
|
||
center
|
||
width="80%"
|
||
>
|
||
<div>
|
||
<el-button
|
||
style="margin: 10px 0"
|
||
:disabled="!isAuth('locality:add')"
|
||
size="mini"
|
||
type="primary"
|
||
icon="document"
|
||
@click="addMaterialpackage()"
|
||
>添加物料包</el-button
|
||
>
|
||
</div>
|
||
<el-table v-loading="tableDataLoading1" :data="MaterialpackageList">
|
||
<el-table-column prop="id" label="编号" fixed="left">
|
||
</el-table-column>
|
||
<el-table-column prop="materialName" label="物料包名称" fixed="left">
|
||
</el-table-column>
|
||
<el-table-column prop="residue" label="物料包数量" fixed="left">
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="massageImg" label="项目图片">
|
||
<template slot-scope="scope">
|
||
<img
|
||
v-if="scope.row.massageImg && scope.row.massageImg != ''"
|
||
:src="scope.row.massageImg"
|
||
width="40"
|
||
height="40"
|
||
/>
|
||
<span v-else>暂无图片</span>
|
||
</template>
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="certificateImg" label="项目详情图" width="250">
|
||
<template slot-scope="scope">
|
||
<div v-if="scope.row.contentImg.length > 0">
|
||
<div
|
||
v-for="(item, index) in scope.row.contentImg"
|
||
:key="index"
|
||
style="display: inline-block; margin: 3px"
|
||
>
|
||
<el-popover placement="top-start" title="" trigger="hover">
|
||
<img
|
||
style="width: 50px; height: 50px"
|
||
:src="item"
|
||
alt=""
|
||
slot="reference"
|
||
/>
|
||
<img
|
||
style="width: 300px; height: auto"
|
||
:src="item"
|
||
alt=""
|
||
/>
|
||
</el-popover>
|
||
</div>
|
||
</div>
|
||
<div v-else>暂无图片</div>
|
||
</template>
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="applyPeople" label="适用人群" width="300">
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="region" label="性别要求" width="100">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.isSex == 0">不限制</span>
|
||
<span v-if="scope.row.isSex == 1">男</span>
|
||
<span v-if="scope.row.isSex == 2">女</span>
|
||
</template>
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="region" label="城市" width="100">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.city">{{ scope.row.city }}</span>
|
||
<span v-else>不限</span>
|
||
</template>
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="oldPrice" label="原价"> </el-table-column>
|
||
<el-table-column prop="price" label="现价"> </el-table-column>
|
||
<el-table-column prop="memberPrice" label="会员价"> </el-table-column>
|
||
<el-table-column prop="artificerPrice" label="师傅价">
|
||
</el-table-column>
|
||
<el-table-column prop="duration" label="时长(分钟)" width="100">
|
||
</el-table-column>
|
||
<el-table-column prop="labels" label="标签" width="200">
|
||
</el-table-column>
|
||
<el-table-column prop="sales" label="销量"> </el-table-column> -->
|
||
<!-- <el-table-column prop="artificerMassageStatus" label="状态">
|
||
<template slot-scope="scope">
|
||
<el-switch
|
||
v-model="scope.row.artificerMassageStatus"
|
||
@change="
|
||
change(
|
||
scope.row.massageTypeId,
|
||
scope.row.artificerMassageStatus
|
||
)
|
||
"
|
||
:disabled="!isAuth('locality:update')"
|
||
:active-value="openValue1"
|
||
:inactive-value="closeValue1"
|
||
active-color="#13ce66"
|
||
inactive-color="#ff4949"
|
||
>
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="createTime" label="创建时间" width="160">
|
||
</el-table-column> -->
|
||
<el-table-column
|
||
label="操作"
|
||
prop="id"
|
||
width="250"
|
||
fixed="right"
|
||
align="center"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
:disabled="!isAuth('locality:delete')"
|
||
@click="editMaterialPackageCount(scope.row)"
|
||
>修改
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
type="danger"
|
||
:disabled="!isAuth('locality:delete')"
|
||
@click="deleteMaterialPackage(scope.row)"
|
||
>删除
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</el-dialog>
|
||
|
||
<!-- 添加、修改服务项目 -->
|
||
<el-dialog :title="titles" :visible.sync="dialogFormVisible9" center>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目类型:</span
|
||
>
|
||
<el-select v-model="classType" style="width: 50%">
|
||
<el-option
|
||
v-for="item in fwData"
|
||
:key="item.id"
|
||
:label="item.value"
|
||
:value="item.id"
|
||
>
|
||
</el-option> </el-select
|
||
>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目名称:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="massageTypeTitle"
|
||
type="text"
|
||
placeholder="请输入项目名称"
|
||
>
|
||
</el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px; display: flex">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目图片:</span
|
||
>
|
||
<div
|
||
style="
|
||
width: 148px;
|
||
height: 148px;
|
||
border: 1px dashed #c0ccda;
|
||
border-radius: 6px;
|
||
text-align: center;
|
||
line-height: 148px;
|
||
"
|
||
>
|
||
<el-upload
|
||
class="avatar-uploader"
|
||
v-model="massageImg"
|
||
:action="uploadUrl"
|
||
:show-file-list="false"
|
||
:on-success="handleAvatarSuccess1"
|
||
:on-progress="onprogress2"
|
||
>
|
||
<!-- <el-progress type="circle" :percentage="100" status="success"></el-progress> -->
|
||
<img
|
||
v-if="massageImg != ''"
|
||
:src="massageImg"
|
||
class="avatar"
|
||
style="border-radius: 6px; width: 148px; height: 148px"
|
||
/>
|
||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||
<!-- <el-progress v-if="percentage2>0&&percentage2<100" type="circle" :percentage="percentage2">
|
||
</el-progress> -->
|
||
</el-upload>
|
||
</div>
|
||
</div>
|
||
<div style="margin-bottom: 10px; display: flex">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目详情图:</span
|
||
>
|
||
<div class="imgs" v-for="(item, index) in contentImg" :key="index">
|
||
<img width="100%" class="images" height="100%" :src="item" alt="" />
|
||
<span class="dels">
|
||
<i class="el-icon-delete" @click="clear3(index)"></i>
|
||
</span>
|
||
</div>
|
||
<div class="imgs" style="width: 50%">
|
||
<el-upload
|
||
:action="uploadUrl"
|
||
list-type="picture-card"
|
||
:show-file-list="false"
|
||
:on-success="handleUploadSuccess3"
|
||
:on-progress="onprogress1"
|
||
>
|
||
<el-progress
|
||
v-if="percentage1 > 0 && percentage1 < 100"
|
||
type="circle"
|
||
:percentage="percentage1"
|
||
></el-progress>
|
||
<i v-else class="el-icon-plus"></i>
|
||
</el-upload>
|
||
</div>
|
||
</div>
|
||
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>原价:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="oldPrice"
|
||
onkeyup="value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
|
||
type="number"
|
||
min="0"
|
||
placeholder="请输入原价"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>现价:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="price"
|
||
onkeyup="value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
|
||
type="number"
|
||
min="0"
|
||
placeholder="请输入现价"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>会员价:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="memberPrice"
|
||
onkeyup="value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
|
||
type="number"
|
||
min="0"
|
||
placeholder="请输入会员价"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>师傅价:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="artificerPrice"
|
||
onkeyup="value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
|
||
type="number"
|
||
min="0"
|
||
placeholder="请输入师傅价"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目时长(分钟):</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="duration"
|
||
type="text"
|
||
placeholder="请输入项目时长(分钟)"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>加钟次数:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="addNum"
|
||
type="text"
|
||
placeholder="请输入加钟次数"
|
||
></el-input>
|
||
</div>
|
||
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>性别限制:</span
|
||
>
|
||
<el-radio-group v-model="isSex">
|
||
<el-radio :label="0">不限制</el-radio>
|
||
<el-radio :label="1">男</el-radio>
|
||
<el-radio :label="2">女</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>适用人群:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="applyPeople"
|
||
type="text"
|
||
placeholder="请输入适用人群"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>状态:</span
|
||
>
|
||
<el-radio-group v-model="massageTypeStatus">
|
||
<el-radio :label="1">上线</el-radio>
|
||
<el-radio :label="2">下线</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>服务城市:</span
|
||
>
|
||
<el-cascader
|
||
style="width: 45%"
|
||
size="large"
|
||
:options="options"
|
||
ref="cascaderAddr"
|
||
v-model="storeAddress"
|
||
:placeholder="storeAddre"
|
||
@change="handleChange55"
|
||
:value="storeAddre"
|
||
>
|
||
</el-cascader>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目标签:</span
|
||
>
|
||
<span class="bqList" v-for="(item, index) in labels1" :key="index"
|
||
>{{ item }}
|
||
<span class="delss">
|
||
<i class="el-icon-delete" @click="dels1(index)"></i>
|
||
</span>
|
||
</span>
|
||
<el-input
|
||
v-model="bq"
|
||
style="width: 200px"
|
||
placeholder="请输入标签"
|
||
></el-input>
|
||
<!-- <button class="tj" @click="btnTj">添加标签</button> -->
|
||
<el-button
|
||
type="primary"
|
||
class="tj"
|
||
size="mini"
|
||
icon="el-icon-edit"
|
||
circle
|
||
@click="btnTj"
|
||
>
|
||
</el-button>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目内容:</span
|
||
>
|
||
<!-- <quill-editor ref="myTextEditor" v-model="content" :options="quillOption"
|
||
style="padding-bottom: 50px;height: 300px;width: 72%;display: inline-table;margin-bottom: 60px;">
|
||
</quill-editor> -->
|
||
<el-input
|
||
v-model="content"
|
||
type="textarea"
|
||
:rows="5"
|
||
style="width: 50%"
|
||
placeholder="请输入项目内容"
|
||
>
|
||
</el-input>
|
||
</div>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="dialogFormVisible9 = false">取 消</el-button>
|
||
<el-button type="primary" @click="refuseto1()">确 定</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 评价列表 -->
|
||
<el-dialog
|
||
title="评价列表"
|
||
:visible.sync="dialogFormVisible10"
|
||
center
|
||
width="80%"
|
||
>
|
||
<el-table v-loading="tableDataLoading" :data="pinglunData.list">
|
||
<el-table-column prop="id" label="编号" width="80"> </el-table-column>
|
||
<el-table-column prop="userName" label="评价用户" width="120">
|
||
<template slot-scope="scope">
|
||
<span
|
||
style="color: #4f9dec; cursor: pointer"
|
||
@click="updatesvideo(scope.row)"
|
||
v-text="scope.row.userName"
|
||
></span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="avatar" label="用户头像" width="100">
|
||
<template slot-scope="scope">
|
||
<img
|
||
v-if="scope.row.avatar && scope.row.avatar != ''"
|
||
:src="scope.row.avatar"
|
||
width="40"
|
||
height="40"
|
||
/>
|
||
<span v-else>暂无图片</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="content" label="评价内容"> </el-table-column>
|
||
<el-table-column prop="score" label="评分"> </el-table-column>
|
||
<el-table-column prop="createTime" label="评价时间" width="180">
|
||
</el-table-column>
|
||
<el-table-column label="操作" prop="id" width="250" align="center">
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
size="mini"
|
||
type="danger"
|
||
:disabled="!isAuth('locality:delete')"
|
||
@click="pinglundelete(scope.row)"
|
||
>删除
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div style="text-align: center; margin-top: 10px">
|
||
<el-pagination
|
||
@size-change="handleSizeChange3"
|
||
@current-change="handleCurrentChange3"
|
||
:page-sizes="[10, 20, 30, 40]"
|
||
:page-size="size2"
|
||
:current-page="page2"
|
||
layout="total,sizes, prev, pager, next,jumper"
|
||
:total="pinglunData.totalCount"
|
||
>
|
||
</el-pagination>
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog title="项目列表" :visible.sync="dialogFormVisible11" center>
|
||
<el-table v-loading="tableDataLoading" :data="tableData4.list">
|
||
<el-table-column prop="massageTypeId" label="编号" width="80">
|
||
</el-table-column>
|
||
<el-table-column prop="title" label="项目名称"> </el-table-column>
|
||
<el-table-column prop="massageImg" label="项目图片">
|
||
<template slot-scope="scope">
|
||
<img
|
||
v-if="scope.row.massageImg && scope.row.massageImg != ''"
|
||
:src="scope.row.massageImg"
|
||
width="40"
|
||
height="40"
|
||
/>
|
||
<span v-else>暂无图片</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="certificateImg" label="项目详情图" width="250">
|
||
<template slot-scope="scope">
|
||
<div
|
||
v-for="(item, index) in scope.row.contentImg"
|
||
:key="index"
|
||
style="display: inline-block; margin: 3px"
|
||
>
|
||
<el-popover placement="top-start" title="" trigger="hover">
|
||
<img
|
||
style="width: 50px; height: 50px"
|
||
:src="item"
|
||
alt=""
|
||
slot="reference"
|
||
/>
|
||
<img style="width: 300px; height: auto" :src="item" alt="" />
|
||
</el-popover>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="region" label="性别要求" width="100">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.isSex == 0">不限制</span>
|
||
<span v-if="scope.row.isSex == 1">男</span>
|
||
<span v-if="scope.row.isSex == 2">女</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="applyPeople" label="适用人群" width="300">
|
||
</el-table-column>
|
||
<el-table-column prop="region" label="城市" width="100">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.city">{{ scope.row.city }}</span>
|
||
<span v-else>不限</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="oldPrice" label="原价"> </el-table-column>
|
||
<el-table-column prop="price" label="现价"> </el-table-column>
|
||
<el-table-column prop="memberPrice" label="会员价"> </el-table-column>
|
||
<el-table-column prop="artificerPrice" label="师傅价">
|
||
</el-table-column>
|
||
<el-table-column prop="duration" label="时长(分钟)">
|
||
</el-table-column>
|
||
<el-table-column prop="addNum" label="加钟次数"> </el-table-column>
|
||
|
||
<el-table-column prop="labels" label="标签" width="200">
|
||
</el-table-column>
|
||
<el-table-column prop="sales" label="销量"> </el-table-column>
|
||
<!-- <el-table-column prop="content" label="详情" width="300">
|
||
</el-table-column> -->
|
||
|
||
<el-table-column prop="status" label="状态">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.status == 1">上线</span>
|
||
<span v-if="scope.row.status == 2">下线</span>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="createTime" label="创建时间" width="160">
|
||
</el-table-column> -->
|
||
<el-table-column
|
||
label="操作"
|
||
prop="id"
|
||
width="100"
|
||
fixed="right"
|
||
align="center"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
:disabled="!isAuth('locality:add')"
|
||
@click="classListAdd(scope.row)"
|
||
>添加
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div style="text-align: center; margin-top: 10px">
|
||
<el-pagination
|
||
@size-change="handleSizeChange4"
|
||
@current-change="handleCurrentChange4"
|
||
:page-sizes="[10, 20, 30, 40]"
|
||
:page-size="limit3"
|
||
:current-page="page3"
|
||
layout="total,sizes, prev, pager, next,jumper"
|
||
:total="tableData4.totalCount"
|
||
>
|
||
</el-pagination>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<el-dialog
|
||
title="添加物料包"
|
||
:visible.sync="addMaterialPackageStatus"
|
||
center
|
||
>
|
||
<el-table :data="materialPackageTable.records">
|
||
<el-table-column prop="id" label="编号" width="80" fixed="left">
|
||
</el-table-column>
|
||
<el-table-column prop="materialName" label="物料包名称" fixed="left">
|
||
</el-table-column>
|
||
<el-table-column prop="materialMinimum" label="最低数量">
|
||
</el-table-column>
|
||
<el-table-column prop="consume" label="消耗数量"> </el-table-column>
|
||
<el-table-column label="操作" prop="id" width="340" fixed="right">
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
style="margin: 5px"
|
||
:disabled="!isAuth('locality:update')"
|
||
@click="addMaterialPackageInner(scope.row)"
|
||
>添加
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<!-- <div style="text-align: center; margin-top: 10px">
|
||
<el-pagination
|
||
@size-change="addNeedsHandlechangesize"
|
||
@current-change="addNeedsCurrentPage"
|
||
:page-sizes="[10, 20, 30, 40]"
|
||
:page-size="pageSize"
|
||
:current-page="currentPage"
|
||
layout="total,sizes, prev, pager, next,jumper"
|
||
:total="tableData4.totalCount"
|
||
>
|
||
</el-pagination>
|
||
</div>-->
|
||
|
||
</el-dialog>
|
||
|
||
<!-- 加钟项目 -->
|
||
<el-dialog title="加钟项目" :visible.sync="dialogFormVisibleJz" center>
|
||
<div style="text-align: right; display: inline-block">
|
||
<el-button
|
||
style="margin: 10px"
|
||
size="mini"
|
||
type="primary"
|
||
icon="document"
|
||
:disabled="!isAuth('locality:add')"
|
||
@click="classAddJz(0)"
|
||
>添加
|
||
</el-button>
|
||
</div>
|
||
<el-table v-loading="tableDataLoadingJz" :data="tableDataJz.list">
|
||
<el-table-column
|
||
prop="massageTypeId"
|
||
label="编号"
|
||
width="80"
|
||
fixed="left"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="title"
|
||
label="项目名称"
|
||
fixed="left"
|
||
width="150"
|
||
>
|
||
</el-table-column>
|
||
|
||
<el-table-column prop="price" label="现价"> </el-table-column>
|
||
<el-table-column prop="memberPrice" label="会员价"> </el-table-column>
|
||
<el-table-column prop="artificerPrice" label="师傅价">
|
||
</el-table-column>
|
||
<el-table-column prop="duration" label="时长(分钟)">
|
||
</el-table-column>
|
||
<el-table-column prop="status" label="状态">
|
||
<template slot-scope="scope">
|
||
<el-switch
|
||
v-model="scope.row.status"
|
||
@change="change(scope.row.massageTypeId, scope.row.status)"
|
||
:disabled="!isAuth('locality:update')"
|
||
:active-value="openValue2"
|
||
:inactive-value="closeValue2"
|
||
active-color="#13ce66"
|
||
inactive-color="#ff4949"
|
||
>
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="createTime" label="创建时间" width="160">
|
||
</el-table-column> -->
|
||
<el-table-column label="操作" prop="id" width="250" fixed="right">
|
||
<template slot-scope="scope">
|
||
<el-button
|
||
size="mini"
|
||
type="primary"
|
||
style="margin: 5px"
|
||
:disabled="!isAuth('locality:update')"
|
||
@click="classAddJz(scope.row)"
|
||
>修改
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
type="danger"
|
||
style="margin: 5px"
|
||
:disabled="!isAuth('locality:delete')"
|
||
@click="classdelete(scope.row)"
|
||
>删除
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div style="text-align: center; margin-top: 10px">
|
||
<el-pagination
|
||
@size-change="handleSizeChangeJz"
|
||
@current-change="handleCurrentChangeJz"
|
||
:page-sizes="[10, 20, 30, 40]"
|
||
:page-size="limit"
|
||
:current-page="page"
|
||
layout="total,sizes, prev, pager, next,jumper"
|
||
:total="tableDataJz.totalCount"
|
||
>
|
||
</el-pagination>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 添加、修改加钟项目 -->
|
||
<el-dialog :title="titles" :visible.sync="dialogFormVisibleJzA" center>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目名称:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="massageTypeTitle"
|
||
type="text"
|
||
placeholder="请输入项目名称"
|
||
>
|
||
</el-input>
|
||
</div>
|
||
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>现价:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="price"
|
||
onkeyup="value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
|
||
type="number"
|
||
min="0"
|
||
placeholder="请输入现价"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>会员价:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="memberPrice"
|
||
onkeyup="value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
|
||
type="number"
|
||
min="0"
|
||
placeholder="请输入会员价"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>师傅价:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="artificerPrice"
|
||
onkeyup="value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
|
||
type="number"
|
||
min="0"
|
||
placeholder="请输入师傅价"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>项目时长(分钟):</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="duration"
|
||
type="text"
|
||
placeholder="请输入项目时长(分钟)"
|
||
></el-input>
|
||
</div>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>状态:</span
|
||
>
|
||
<el-radio-group v-model="massageTypeStatus">
|
||
<el-radio :label="1">上线</el-radio>
|
||
<el-radio :label="2">下线</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="dialogFormVisibleJzA = false">取 消</el-button>
|
||
<el-button type="primary" @click="refusetoJz()">确 定</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 信用分明细 -->
|
||
<el-dialog title="信用分明细" :visible.sync="dialogFormVisibleXyf" center>
|
||
<el-table v-loading="tableDataLoadingXyf" :data="tableDataXyf.list">
|
||
<el-table-column prop="id" label="编号" width="80"> </el-table-column>
|
||
<!-- <el-table-column prop="userName" label="投诉的用户" width="100">
|
||
<template slot-scope="scope">
|
||
<span style="color: #4f9dec;cursor: pointer;" @click="updatesvideo(scope.row)">
|
||
{{ scope.row.userName?scope.row.userName:'未绑定'}}
|
||
</span>
|
||
</template>
|
||
</el-table-column> -->
|
||
<el-table-column prop="title" label="标题" width="150">
|
||
</el-table-column>
|
||
<el-table-column prop="content" label="内容"> </el-table-column>
|
||
<!-- <el-table-column prop="image" label="图片" width="150">
|
||
<template slot-scope="scope">
|
||
<div v-if="scope.row.image">
|
||
<div v-for="(item,index) in scope.row.image.split(',')" :key="index"
|
||
style="display: inline-block; margin: 3px;">
|
||
<el-popover placement="top-start" title="" trigger="hover">
|
||
<img style="width: 50px; height: 50px" :src="item" alt="" slot="reference">
|
||
<img style="width: 300px; height: auto" :src="item" alt="">
|
||
</el-popover>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="createAt" label="创建时间" width="100"></el-table-column> -->
|
||
</el-table>
|
||
<div style="text-align: center; margin-top: 10px">
|
||
<el-pagination
|
||
@size-change="handleSizeChangeXyf"
|
||
@current-change="handleCurrentChangeXyf"
|
||
:page-sizes="[10, 20, 30, 40]"
|
||
:page-size="size1"
|
||
:current-page="page1"
|
||
layout="total,sizes, prev, pager, next,jumper"
|
||
:total="tableDataXyf.totalCount"
|
||
>
|
||
</el-pagination>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 修改比例 -->
|
||
<el-dialog :title="titleBl" :visible.sync="dialogFormVisible2" center>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>比例:</span
|
||
>
|
||
<el-input
|
||
style="width: 50%"
|
||
v-model="proportion"
|
||
type="number"
|
||
:min="0"
|
||
:controls="false"
|
||
:placeholder="titleBl"
|
||
></el-input>
|
||
</div>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="dialogFormVisible2 = false">取 消</el-button>
|
||
<el-button type="primary" @click="StairNoticeTo2()">确 定</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 修改技师类型 -->
|
||
<el-dialog title="技师类型" :visible.sync="tecTypeVisible" center>
|
||
<div style="margin-bottom: 10px">
|
||
<span style="width: 200px; display: inline-block; text-align: right"
|
||
>类型:</span
|
||
>
|
||
<el-select v-model="tecTypeValue" style="width:150px;margin-left: 10px;" >
|
||
<el-option v-for="item in vipTypeList" :key="item.vipNameType" :label="item.vipName" :value="item.vipNameType"></el-option>
|
||
</el-select>
|
||
<!-- <el-input
|
||
style="width: 50%"
|
||
v-model="tecTypeValue"
|
||
type="number"
|
||
:min="0"
|
||
:controls="false"
|
||
></el-input> -->
|
||
</div>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="tecTypeVisible = false">取 消</el-button>
|
||
<el-button type="primary" @click="StairNoticeTo3()">确 定</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
</el-tabs>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import { quillEditor } from "vue-quill-editor";
|
||
import "quill/dist/quill.core.css";
|
||
import "quill/dist/quill.snow.css";
|
||
import "quill/dist/quill.bubble.css";
|
||
import quillConfig from "../locality/quill-config.js";
|
||
import axios from "axios";
|
||
import { serverPaths } from '@/utils/enumData'
|
||
import { jsonp } from "vue-jsonp";
|
||
import {
|
||
provinceAndCityData,
|
||
regionData,
|
||
provinceAndCityDataPlus,
|
||
regionDataPlus,
|
||
CodeToText,
|
||
TextToCode,
|
||
} from "element-china-area-data";
|
||
var cityOptions = [];
|
||
var geocoder,
|
||
map,
|
||
markersArray = [];
|
||
export default {
|
||
components: {
|
||
quillEditor,
|
||
},
|
||
data() {
|
||
let materialPackageRulesFun = (rule, value, callback) => {
|
||
if (
|
||
this.ruleForm.materialPackageCountType == 2 &&
|
||
this.ruleForm.materialPackageCount >
|
||
this.editMaterialPackageCountRow.residue
|
||
) {
|
||
callback(new Error("减少物料包数量时不能大于剩余数量"));
|
||
}
|
||
};
|
||
return {
|
||
uploadUrl: serverPaths.uploadUrl,
|
||
uploadWatermarkUrl: serverPaths.uploadWatermarkUrl,
|
||
ruleForm: {
|
||
materialPackageCount: null,
|
||
materialPackageCountType: null,
|
||
},
|
||
materialPackageCountTypeStatus: false,
|
||
editMaterialPackageCountStatus: false,
|
||
dialogWidth: 0,
|
||
size: 10,
|
||
page: 1,
|
||
size1: 10,
|
||
page1: 1,
|
||
size2: 10,
|
||
page2: 1,
|
||
page3: 1,
|
||
limit3: 10,
|
||
state: "",
|
||
limit: 10,
|
||
classify: 6,
|
||
classifys: 6,
|
||
openValue: 1,
|
||
closeValue: 2,
|
||
openValue1: 0,
|
||
closeValue1: 1,
|
||
openValue2: 1,
|
||
closeValue2: 2,
|
||
openValue3: 1,
|
||
closeValue3: 0,
|
||
title: "",
|
||
type: "",
|
||
name: "",
|
||
keyword: "",
|
||
describes: "",
|
||
checkBoxData: [], //多选框选择的值
|
||
method: "false",
|
||
formLabelWidth: "200px",
|
||
activeName: "first",
|
||
tableDataLoading: true,
|
||
tableDataLoading1: false,
|
||
tableDataLoading4: false,
|
||
dialogFormVisible3: false,
|
||
dialogFormVisible1: false,
|
||
dialogFormVisible5: false,
|
||
dialogFormVisible6: false,
|
||
dialogFormVisible7: false,
|
||
dialogFormVisible8: false,
|
||
dialogFormVisible9: false,
|
||
dialogFormVisible10: false,
|
||
dialogFormVisible11: false,
|
||
homeData: [],
|
||
homeData1: [
|
||
{
|
||
massageTypeId: 0,
|
||
title: "全部",
|
||
},
|
||
],
|
||
// classify: 2,
|
||
classifyList: [
|
||
// {
|
||
// id: '',
|
||
// name: '全部'
|
||
// },
|
||
// {
|
||
// id: 1,
|
||
// name: '线上'
|
||
// },
|
||
{
|
||
id: 2,
|
||
name: "线下",
|
||
},
|
||
],
|
||
choicenData: [],
|
||
pinglunData: {},
|
||
renwuId: "",
|
||
url: "",
|
||
imageUrl: "",
|
||
id: "",
|
||
userId: "",
|
||
artificerName: "",
|
||
myPhone: "",
|
||
massageTypeId: "",
|
||
statusId: "",
|
||
statuss: [
|
||
{
|
||
id: "",
|
||
title: "全部",
|
||
},
|
||
{
|
||
id: 0,
|
||
title: "服务中",
|
||
},
|
||
{
|
||
id: 1,
|
||
title: "待审核",
|
||
},
|
||
{
|
||
id: 2,
|
||
title: "已下架",
|
||
},
|
||
{
|
||
id: 3,
|
||
title: "拒绝",
|
||
},
|
||
],
|
||
// 发布信息
|
||
myLevel: "", //标题
|
||
orderLevel: "", //接单段位
|
||
userIdss: "", //用户id
|
||
orderTakingArea: "", //接单大区
|
||
homepageImg: "", //封面图
|
||
headImg: "", //主页图
|
||
percentage: 0, //进度条
|
||
percentage2: 0, //进度条
|
||
voiceIntroduce: "", //语音介绍
|
||
gameId: "", //项目id
|
||
oldMoney: "", //发布价格
|
||
money: "", //普通用户价格
|
||
// orderLevel: "", //经验
|
||
memberMoney: "", //会员价格
|
||
latitude: "", //纬度
|
||
longitude: "", //经度
|
||
city: "", //市
|
||
orderTakingTime: "",
|
||
status: "", //状态0待审核 1上架 2下架 3驳回 (修改添加不传)
|
||
region: "", //最低项目时间
|
||
unit: "小时",
|
||
phone: "", //电话
|
||
phone1: "",
|
||
pickeroptions: {
|
||
selectableRange: "00:00:01 - 23:59:59",
|
||
},
|
||
value1: "",
|
||
value2: "",
|
||
|
||
options: provinceAndCityData,
|
||
storeAddress: [],
|
||
storeAddre: "请选择城市",
|
||
province: "", //省
|
||
district: "", //区
|
||
ids: "", //信息id
|
||
nickName: "",
|
||
nickName1: "",
|
||
nickName2: "",
|
||
userIds: {}, //用户列表
|
||
bq: "", //输入的标签名
|
||
missions: 0,
|
||
shenheId: 0, //审核id
|
||
contents: "", //驳回理由
|
||
dialogVisible: false,
|
||
radio: 0,
|
||
multipleSelection: [],
|
||
campus: "",
|
||
campus1: "",
|
||
campusName: "",
|
||
homeData2: [],
|
||
quillOption: quillConfig,
|
||
statusIdd: 1,
|
||
tableData: {},
|
||
tableData3: [],
|
||
tableData4: {},
|
||
titles: "添加项目项目",
|
||
renwuTitles: "添加任务",
|
||
gameName: "",
|
||
gameIds: "",
|
||
gameImg: "",
|
||
gameStatus: "",
|
||
checkList: [], //多选 选中集合
|
||
detailsImg: [], //轮播图
|
||
certificateImg: [], //资格证书
|
||
workImg: [], //工作照片
|
||
hideUpload: false,
|
||
percentage1: 0,
|
||
authentication: 1,
|
||
|
||
// 师傅分类参数
|
||
labels1: [], //标签集合
|
||
// bq: "", //输入的标签名
|
||
artificerPrice: "", //师傅价格
|
||
// city: "", //师傅城市
|
||
content: "", //内容
|
||
contentImg: [], //详情图
|
||
duration: "", //时长
|
||
addNum: "", //加钟次数
|
||
isSex: "", //师傅性别
|
||
applyPeople: "", //适用人群
|
||
labels: "", //标签
|
||
massageImg: "", //图片
|
||
// massageTypeId: "", //师傅分类Id
|
||
memberPrice: "", //会员价
|
||
oldPrice: "", //原价
|
||
price: "", //现价
|
||
sales: "", //销量
|
||
massageTypeStatus: "", //师傅分类状态
|
||
massageTypeTitle: "", //标题
|
||
citys: "",
|
||
artificerId: "",
|
||
userId1: "",
|
||
|
||
classTypeList: [],
|
||
vipTypeList: [],
|
||
// 加钟项目
|
||
dialogFormVisibleJz: false,
|
||
fwData: [],
|
||
classifyId: "",
|
||
classType: "",
|
||
parentId: "",
|
||
tableDataJz: {},
|
||
tableDataLoadingJz: false,
|
||
dialogFormVisibleJzA: false,
|
||
pageJ: 1,
|
||
limitJ: 10,
|
||
dialogFormVisibleXyf: false,
|
||
tableDataLoadingXyf: false,
|
||
tableDataXyf: {},
|
||
|
||
dialogFormVisible2: false,
|
||
tecTypeVisible: false,
|
||
titleBl: "抽成比例",
|
||
proportion: "",
|
||
tecTypeValue: "",
|
||
phoneT: "",
|
||
MaterialpackageStatus: false,
|
||
MaterialpackageList: [],
|
||
addMaterialPackageStatus: false,
|
||
pageSize: 10,
|
||
currentPage: 1,
|
||
materialPackageTable: [],
|
||
addNeedsClassifyId: "",
|
||
addNeedUserId: "",
|
||
editMaterialPackageCountRow: {},
|
||
rules: {
|
||
materialPackageRules: [
|
||
{ validator: materialPackageRulesFun, trigger: "change" },
|
||
],
|
||
},
|
||
};
|
||
},
|
||
methods: {
|
||
submitMaterialPackageCount() {
|
||
this.$http({
|
||
url: this.$http.adornUrl("material/materialArtificerUpdata"),
|
||
method: "POST",
|
||
params: this.$http.adornParams({
|
||
id: this.editMaterialPackageCountRow.id,
|
||
type: this.ruleForm.materialPackageCountType,
|
||
balance: this.ruleForm.materialPackageCount,
|
||
updateUser: this.userId,
|
||
}),
|
||
}).then((data) => {
|
||
if (data && data.data.code === 0) {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "修改成功",
|
||
type: "success",
|
||
});
|
||
this.editMaterialPackageCountStatus = false;
|
||
this.getMaterialpackageList();
|
||
this.ruleForm.materialPackageCountType = null;
|
||
this.ruleForm.materialPackageCount = null;
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
editMaterialPackageCount(row) {
|
||
this.editMaterialPackageCountStatus = true;
|
||
this.editMaterialPackageCountRow = row;
|
||
if (row.residue == 0) {
|
||
this.materialPackageCountTypeStatus = true;
|
||
} else {
|
||
this.materialPackageCountTypeStatus = false;
|
||
}
|
||
},
|
||
deleteMaterialPackage(row) {
|
||
// 删除数据
|
||
this.$http({
|
||
url: this.$http.adornUrl("material/materialArtificerDelete"),
|
||
method: "POST",
|
||
params: this.$http.adornParams({
|
||
id: row.id,
|
||
artificerId: row.artificerId,
|
||
}),
|
||
}).then((data) => {
|
||
if (data && data.data.code === 0) {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "删除成功",
|
||
type: "success",
|
||
});
|
||
this.getMaterialpackageList();
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
addMaterialPackageInner(row) {
|
||
console.log(row);
|
||
this.$http({
|
||
url: this.$http.adornUrl("material/materialArtificerInsert"),
|
||
method: "POST",
|
||
params: this.$http.adornParams({
|
||
materialId: row.materialId,
|
||
artificerId: this.addNeedArtificerId,
|
||
createUser: this.addNeedUserId,
|
||
updateUser: this.addNeedUserId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data && data.code === 0) {
|
||
// this.addMaterialPackageStatus = false;
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "添加成功",
|
||
type: "success",
|
||
});
|
||
this.getMaterialpackageList();
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
addNeedsHandlechangesize(e) {
|
||
this.pageSize = e;
|
||
this.getMaterialPackageTotalList();
|
||
},
|
||
addNeedsCurrentPage(e) {
|
||
this.currentPage = e;
|
||
this.getMaterialPackageTotalList();
|
||
},
|
||
getMaterialPackageTotalList() {
|
||
this.$http({
|
||
url: this.$http.adornUrl("material/selectMaterialMassage"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
artificerId: this.addNeedArtificerId,
|
||
page: 1,
|
||
limit: 100,
|
||
status: this.addNeedsClassifyId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data && data.code === 0) {
|
||
this.materialPackageTable = data.data;
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 获取物料包数据
|
||
getMaterialpackageList() {
|
||
this.$http({
|
||
url: this.$http.adornUrl(
|
||
"material/selectMaterialArtificer?artificerId=" +
|
||
this.addNeedArtificerId
|
||
),
|
||
method: "get",
|
||
params: this.$http.adornParams(),
|
||
}).then(({ data }) => {
|
||
if (data && data.code === 0) {
|
||
this.MaterialpackageList = data.data;
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
addMaterialpackage() {
|
||
this.addMaterialPackageStatus = true;
|
||
this.getMaterialPackageTotalList();
|
||
},
|
||
openMaterialPackage(row) {
|
||
console.log(row);
|
||
this.MaterialpackageStatus = true;
|
||
this.addNeedArtificerId = row.artificerId;
|
||
this.addNeedsClassifyId = row.classifyId;
|
||
this.addNeedUserId = row.userId;
|
||
this.getMaterialpackageList();
|
||
},
|
||
removeDisabled(row) {
|
||
// 获取列表数据
|
||
console.log(this.choicenData, row);
|
||
let getUserId = this.choicenData.list.filter(
|
||
(item) => item.userId == row.userId
|
||
);
|
||
this.$http({
|
||
url: this.$http.adornUrl(
|
||
"artificer/cancellationSuspension/" + getUserId[0].userId
|
||
),
|
||
method: "POST",
|
||
}).then(({ data }) => {});
|
||
},
|
||
//查看照片
|
||
refund(e) {
|
||
console.log(e);
|
||
this.imageUrl = [];
|
||
if (e.img != null) {
|
||
let img = e.img.split(",");
|
||
if (img.length != 0) {
|
||
this.imageUrl = img;
|
||
}
|
||
}
|
||
this.dialogVisible = true;
|
||
},
|
||
// 多选
|
||
changeFun(val) {
|
||
this.checkBoxData = val;
|
||
},
|
||
handleSizeChange(val) {
|
||
this.limit = val;
|
||
this.classSelect();
|
||
},
|
||
handleCurrentChange(val) {
|
||
this.page = val;
|
||
this.classSelect();
|
||
},
|
||
handleSizeChange1(val) {
|
||
this.limit = val;
|
||
this.InformationSelect();
|
||
},
|
||
handleCurrentChange1(val) {
|
||
this.page = val;
|
||
this.InformationSelect();
|
||
},
|
||
handleSizeChange2(val) {
|
||
this.size1 = val;
|
||
this.tableDataLoading4 = true;
|
||
this.userClass();
|
||
},
|
||
handleCurrentChange2(val) {
|
||
this.page1 = val;
|
||
this.tableDataLoading4 = true;
|
||
this.userClass();
|
||
},
|
||
handleSizeChange3(val) {
|
||
this.size2 = val;
|
||
this.pinglunSelect(this.renwuId);
|
||
},
|
||
handleCurrentChange3(val) {
|
||
this.page2 = val;
|
||
this.pinglunSelect(this.renwuId);
|
||
},
|
||
handleSizeChange4(val) {
|
||
this.size3 = val;
|
||
this.classSelect2(this.artificerId);
|
||
},
|
||
handleCurrentChange4(val) {
|
||
this.page3 = val;
|
||
this.classSelect2(this.artificerId);
|
||
},
|
||
handleSizeChangeJz(val) {
|
||
this.limitJ = val;
|
||
this.classSelectJz();
|
||
},
|
||
handleCurrentChangeJz(val) {
|
||
this.pageJ = val;
|
||
this.classSelectJz();
|
||
},
|
||
handleSizeChangeXyf(val) {
|
||
this.size1 = val;
|
||
this.xinyongSelect(this.artificerId);
|
||
},
|
||
handleCurrentChangeXyf(val) {
|
||
this.page1 = val;
|
||
this.xinyongSelect(this.artificerId);
|
||
},
|
||
handleClick(tab, event) {
|
||
this.campus = "";
|
||
this.campus1 = "";
|
||
this.citys = "";
|
||
this.page = 1;
|
||
if (tab._props.label == "师傅列表") {
|
||
this.authentication = 1;
|
||
this.type = 2;
|
||
this.InformationSelect();
|
||
}
|
||
|
||
if (tab._props.label == "服务项目") {
|
||
this.classSelect();
|
||
}
|
||
},
|
||
|
||
//添加精选商品
|
||
choiaddNotice() {
|
||
this.campus = "";
|
||
this.campus1 = "";
|
||
this.renwuTitles = "添加任务";
|
||
this.dialogFormVisible5 = true;
|
||
this.percentage = 0;
|
||
this.gameId = "";
|
||
this.myLevel = "";
|
||
this.orderTakingTime = "";
|
||
this.value1 = "";
|
||
this.value2 = "";
|
||
this.orderLevel = "";
|
||
this.orderTakingArea = "";
|
||
this.headImg = "";
|
||
this.oldMoney = "";
|
||
this.money = "";
|
||
this.orderLevel = "";
|
||
this.memberMoney = "";
|
||
this.region = "";
|
||
this.describes = "";
|
||
this.unit = "小时";
|
||
this.latitude = "";
|
||
this.longitude = "";
|
||
this.voiceIntroduce = "";
|
||
this.userIdss = "";
|
||
this.city = "";
|
||
this.nickName1 = "";
|
||
this.nickName2 = "";
|
||
this.phone = "";
|
||
this.checkList = [];
|
||
this.getMyLocation();
|
||
console.log("this.homepageImg", this.homepageImg);
|
||
},
|
||
// 查询
|
||
phoneSelect() {
|
||
this.page = 1;
|
||
this.InformationSelect();
|
||
},
|
||
// 重置
|
||
cleans2() {
|
||
this.status = "";
|
||
this.statusId = "";
|
||
this.artificerName = "";
|
||
this.massageTypeId = "";
|
||
this.classifyIds = "";
|
||
this.citys = "";
|
||
this.classifyId = "";
|
||
this.phoneT = "";
|
||
this.page = 1;
|
||
console.log("this.phone", this.myPhone);
|
||
this.InformationSelect();
|
||
},
|
||
// 查询
|
||
phoneSelect1() {
|
||
this.page = 1;
|
||
this.classSelect();
|
||
},
|
||
// 重置
|
||
cleans3() {
|
||
this.citys = "";
|
||
this.title = "";
|
||
this.classifyId = "";
|
||
this.page = 1;
|
||
this.classSelect();
|
||
},
|
||
// 获取项目项目启用列表
|
||
homeSelect() {
|
||
this.tableDataLoading = true;
|
||
this.$http({
|
||
url: this.$http.adornUrl(`artificer/selectMassageTypeList`),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
status: 0,
|
||
}),
|
||
}).then(({ data }) => {
|
||
this.tableDataLoading = false;
|
||
let returnData = data.data;
|
||
this.homeData1 = [
|
||
{
|
||
massageTypeId: "",
|
||
title: "全部",
|
||
},
|
||
];
|
||
if (data.data.length > 0) {
|
||
for (var i in data.data) {
|
||
this.homeData1.push(data.data[i]);
|
||
data.data[i].state = Number(data.data[i].state);
|
||
}
|
||
}
|
||
this.homeData = data.data;
|
||
});
|
||
},
|
||
// 信息数据
|
||
InformationSelect() {
|
||
this.userId = this.$store.state.user.id;
|
||
var massageTypeId = "";
|
||
if (this.massageTypeId != "") {
|
||
massageTypeId = this.massageTypeId;
|
||
}
|
||
this.$http({
|
||
url: this.$http.adornUrl(`artificer/selectArtificerList`),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
page: this.page,
|
||
limit: this.limit,
|
||
artificerName: this.artificerName,
|
||
massageTypeId: this.massageTypeId,
|
||
longitude: "",
|
||
latitude: "",
|
||
city: this.citys,
|
||
classifyId: this.classifyId,
|
||
phone: this.phoneT,
|
||
authentication: 2,
|
||
isBack: "1"
|
||
}),
|
||
}).then(({ data }) => {
|
||
this.tableDataLoading = false;
|
||
let returnData = data.data;
|
||
data.data.list.forEach((item) => {
|
||
switch (item.status) {
|
||
case 1:
|
||
item.accountNumberStauts = "正常";
|
||
break;
|
||
case 2:
|
||
item.accountNumberStauts = "禁用";
|
||
break;
|
||
case 3:
|
||
item.accountNumberStauts = "停牌";
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
});
|
||
this.choicenData = returnData;
|
||
console.log(this.choicenData);
|
||
for (var i in this.choicenData.list) {
|
||
this.choicenData.list[i].accountNumberStatus;
|
||
if (this.choicenData.list[i].lifePhoto) {
|
||
this.choicenData.list[i].lifePhoto =
|
||
this.choicenData.list[i].lifePhoto.split(",");
|
||
}
|
||
if (this.choicenData.list[i].certificate) {
|
||
this.choicenData.list[i].certificate =
|
||
this.choicenData.list[i].certificate.split(",");
|
||
}
|
||
}
|
||
});
|
||
},
|
||
// 封面图片上传
|
||
handleAvatarSuccess5(file) {
|
||
this.headImg = file.data;
|
||
},
|
||
onprogress(event, file, fileList) {
|
||
console.log("event, file, fileList", parseInt(event.percent));
|
||
this.percentage = parseInt(event.percent);
|
||
},
|
||
// 封面图片上传
|
||
handleAvatarSuccess1(file) {
|
||
this.massageImg = file.data;
|
||
},
|
||
onprogress2(event, file, fileList) {
|
||
console.log("event, file, fileList", parseInt(event.percent));
|
||
this.percentage2 = parseInt(event.percent);
|
||
},
|
||
// 详情图片上传
|
||
handleRemove(file) {
|
||
console.log(file, voiceIntroduce);
|
||
this.voiceIntroduce = "";
|
||
},
|
||
handleSuccess(file) {
|
||
console.log(file);
|
||
this.voiceIntroduce = file.data;
|
||
console.log(file.data, this.voiceIntroduce);
|
||
this.tableDataLoading4 = false;
|
||
},
|
||
handlePreview(file) {
|
||
this.tableDataLoading4 = true;
|
||
},
|
||
// 验证只能上传音频
|
||
beforeAvatarUpload(file) {
|
||
var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
|
||
const extension = testmsg === "mp3";
|
||
if (!extension) {
|
||
this.$message({
|
||
message: "上传文件只能是mp3格式!",
|
||
type: "error",
|
||
});
|
||
}
|
||
return extension;
|
||
},
|
||
// 删除详情图
|
||
dels(index) {
|
||
this.img.splice(index, 1);
|
||
console.log(this.img);
|
||
},
|
||
// 获取分类id
|
||
onChang(e) {
|
||
console.log(e);
|
||
this.gameId = e.toString();
|
||
this.checkList = e;
|
||
},
|
||
// 获取社区
|
||
onChang3(e) {
|
||
console.log(e);
|
||
this.campus1 = e;
|
||
},
|
||
// 获取省市区
|
||
handleChange55(value) {
|
||
value = this.$refs["cascaderAddr"].currentLabels;
|
||
console.log("````````````value", value);
|
||
this.province = value[0];
|
||
this.city = value[1];
|
||
this.district = value[2];
|
||
if (this.city == "市辖区") {
|
||
this.city = this.province;
|
||
}
|
||
this.region = value[0] + value[1] + value[2];
|
||
this.storeAddre = this.province + "/" + this.city;
|
||
this.storeAddress = value;
|
||
console.log(this.region);
|
||
},
|
||
//定位获得当前位置信息
|
||
getMyLocation() {
|
||
var geolocation = new qq.maps.Geolocation(
|
||
"DSQBZ-5MM3P-HEODO-VG6IX-SBRJE-PSBNX",
|
||
"码兄到家管理"
|
||
);
|
||
geolocation.getIpLocation(this.showPosition, this.showErr);
|
||
// geolocation.getLocation(this.showPosition, this.showErr);//或者用getLocation精确度比较高
|
||
},
|
||
showPosition(position) {
|
||
console.log(position);
|
||
// this.latitude = position.lat;
|
||
// this.longitude = position.lng;
|
||
// this.city = position.city;
|
||
this.setMap();
|
||
},
|
||
showErr(e) {
|
||
console.log("定位失败", e);
|
||
this.getMyLocation(); //定位失败再请求定位,测试使用
|
||
},
|
||
//位置信息在地图上展示
|
||
setMap() {
|
||
//步骤:定义map变量 调用 qq.maps.Map() 构造函数 获取地图显示容器
|
||
//设置地图中心点
|
||
var myLatlng = new qq.maps.LatLng(this.latitude, this.longitude);
|
||
//定义工厂模式函数
|
||
var myOptions = {
|
||
zoom: 13, //设置地图缩放级别
|
||
center: myLatlng, //设置中心点样式
|
||
mapTypeId: qq.maps.MapTypeId.ROADMAP, //设置地图样式详情参见MapType
|
||
};
|
||
// //获取dom元素添加地图信息
|
||
var map = new qq.maps.Map(
|
||
document.getElementById("container1"),
|
||
myOptions
|
||
);
|
||
//给地图添加点击事件
|
||
|
||
//给定位的位置添加图片标注
|
||
var marker = new qq.maps.Marker({
|
||
position: myLatlng,
|
||
map: map,
|
||
});
|
||
// `````````````
|
||
var that = this;
|
||
if (that.longitude == "") {
|
||
var center = new qq.maps.LatLng(34.34281541842994, 108.93970884382725);
|
||
} else {
|
||
var center = new qq.maps.LatLng(that.latitude, that.longitude);
|
||
}
|
||
|
||
var map = new qq.maps.Map(document.getElementById("container1"), {
|
||
center: center,
|
||
zoom: 13,
|
||
});
|
||
var marker = new qq.maps.Marker({
|
||
position: center,
|
||
map: map,
|
||
});
|
||
var latlngBounds = new qq.maps.LatLngBounds();
|
||
qq.maps.event.addListener(map, "click", function (event) {
|
||
console.log(event, qq.maps);
|
||
that.longitude = event.latLng.getLng(); // 经度
|
||
that.latitude = event.latLng.getLat(); // 纬度
|
||
|
||
jsonp(
|
||
"https://apis.map.qq.com/ws/geocoder/v1/?location=" +
|
||
event.latLng.getLat() +
|
||
"," +
|
||
event.latLng.getLng() +
|
||
"&key=DSQBZ-5MM3P-HEODO-VG6IX-SBRJE-PSBNX&get_poi=1&output=jsonp",
|
||
{
|
||
myCustomUrlParam: "veryNice",
|
||
}
|
||
)
|
||
.then((response) => {
|
||
console.log(
|
||
"response",
|
||
response,
|
||
response.result.address_component.city
|
||
);
|
||
that.address = response.result.formatted_addresses.recommend;
|
||
this.city = response.result.address_component.city;
|
||
})
|
||
.catch((error) => {
|
||
// handle error
|
||
})
|
||
.then(() => {
|
||
// always executed
|
||
});
|
||
if (markersArray) {
|
||
for (let i in markersArray) {
|
||
markersArray[i].setMap(null);
|
||
}
|
||
}
|
||
if (!marker) {
|
||
marker = new qq.maps.Marker({
|
||
map: map,
|
||
position: event.latLng,
|
||
});
|
||
} else {
|
||
marker.setPosition(event.latLng);
|
||
}
|
||
|
||
// markersArray.push(marker);
|
||
});
|
||
geocoder = new qq.maps.Geocoder({
|
||
complete: function (result) {
|
||
console.log(result);
|
||
that.longitude = result.detail.location.lng;
|
||
that.latitude = result.detail.location.lat;
|
||
map.setCenter(result.detail.location);
|
||
var marker = new qq.maps.Marker({
|
||
map: map,
|
||
position: result.detail.location,
|
||
});
|
||
markersArray.push(marker);
|
||
},
|
||
});
|
||
},
|
||
// 地图定位
|
||
select() {
|
||
console.log(this.address, this.address.replace(/^\s+|\s+$/gm, ""));
|
||
|
||
if (this.address == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入详细地址",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
} else {
|
||
var add = this.province + this.city + this.district + this.address;
|
||
let that = this;
|
||
jsonp(
|
||
"https://apis.map.qq.com/ws/geocoder/v1/?address==" +
|
||
add +
|
||
"&key=DSQBZ-5MM3P-HEODO-VG6IX-SBRJE-PSBNX&get_poi=1&output=jsonp",
|
||
{
|
||
myCustomUrlParam: "veryNice",
|
||
}
|
||
)
|
||
.then((response) => {
|
||
// handle success
|
||
if (response.message == "查询无结果") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "详细地址输入有误,请重新输入",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
console.log("response", response);
|
||
that.longitude = response.result.location.lng; // 经度
|
||
that.latitude = response.result.location.lat; // 纬度
|
||
that.city = response.result.address_components.city;
|
||
// that.address = response.result.address_components.province + response.result.address_components
|
||
// .city + response.result.address_components.district + response.result.title
|
||
that.setMap();
|
||
})
|
||
.catch((error) => {
|
||
// handle error
|
||
})
|
||
.then(() => {
|
||
// always executed
|
||
});
|
||
}
|
||
},
|
||
// 获取用户列表弹框
|
||
userselect() {
|
||
this.dialogFormVisible3 = true;
|
||
this.tableDataLoading4 = true;
|
||
this.userClass();
|
||
},
|
||
// 获取用户列表
|
||
userClass() {
|
||
let phone = -1;
|
||
if (this.phone) {
|
||
phone = this.phone;
|
||
}
|
||
let nickName = -1;
|
||
if (this.nickName) {
|
||
nickName = this.nickName;
|
||
}
|
||
this.$http({
|
||
url: this.$http.adornUrl("userCertification/queryUserCertification"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
page: this.page,
|
||
limit: this.limit,
|
||
name: this.nickName2,
|
||
phone: this.phone1,
|
||
}),
|
||
}).then(({ data }) => {
|
||
this.tableDataLoading4 = false;
|
||
let returnData = data.data;
|
||
this.userIds = returnData;
|
||
});
|
||
},
|
||
// 查询用户列表
|
||
userclick() {
|
||
this.page = 1;
|
||
this.tableDataLoading4 = true;
|
||
this.userClass();
|
||
},
|
||
// 重置用户列表数据
|
||
userclose() {
|
||
this.phone1 = "";
|
||
this.nickName2 = "";
|
||
this.tableDataLoading4 = true;
|
||
|
||
this.userClass();
|
||
},
|
||
// 确定用户
|
||
confirm(row) {
|
||
this.userIdss = row.userId;
|
||
this.nickName1 = row.userName;
|
||
this.phone = row.phone;
|
||
// if (this.nickName == '' || this.nickName == null) {
|
||
// this.nickName = row.phone
|
||
// }
|
||
this.dialogFormVisible3 = false;
|
||
},
|
||
// 添加标签
|
||
btnTj() {
|
||
if (this.bq == "" || this.bq == " ") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入标签名",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
} else {
|
||
console.log("this.bq", this.bq);
|
||
this.labels1.push(this.bq);
|
||
this.bq = "";
|
||
}
|
||
},
|
||
// 删除标签
|
||
dels1(index) {
|
||
this.labels1.splice(index, 1);
|
||
console.log(this.labels1);
|
||
},
|
||
// 确定添加
|
||
addmissionNoticeTo() {
|
||
let photost = this.contentImg.toString();
|
||
let certificateImgs = this.certificateImg.toString();
|
||
let workImgs = this.workImg.toString();
|
||
// let detailsImgs = this.contentImg.toString();
|
||
let storeAddress1 = this.storeAddress.toString();
|
||
console.log(this.userIdss, this.gameId, photost);
|
||
if (this.gameId == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择项目",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.userId == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择发布人",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (this.headImg == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请上主页图",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (this.money == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入期望薪资",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.orderLevel == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入技能",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.region == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择服务地区",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.describes == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入描述",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (this.city == "") {
|
||
this.select();
|
||
}
|
||
let urls = "";
|
||
if (this.missions == 0) {
|
||
urls = "orderTaking/insertOrderTaking";
|
||
} else {
|
||
urls = "orderTaking/updateTakingOrders";
|
||
}
|
||
var times = this.value1 + "~" + this.value2;
|
||
let that = this;
|
||
setTimeout(function () {
|
||
that
|
||
.$http({
|
||
url: that.$http.adornUrl(urls),
|
||
method: "get",
|
||
// data: that.$http.adornData({
|
||
params: that.$http.adornParams({
|
||
gameId: that.gameId.toString(),
|
||
myLevel: that.myLevel,
|
||
orderLevel: that.orderLevel,
|
||
orderTakingArea: that.orderTakingArea,
|
||
orderTakingTime: times,
|
||
oldMoney: that.oldMoney,
|
||
money: that.money,
|
||
memberMoney: that.memberMoney,
|
||
region: storeAddress1,
|
||
describes: that.describes,
|
||
unit: that.unit,
|
||
voiceIntroduce: that.voiceIntroduce,
|
||
headImg: that.headImg,
|
||
userId: that.userIdss,
|
||
latitude: that.latitude,
|
||
longitude: that.longitude,
|
||
city: that.city,
|
||
id: that.ids,
|
||
detailsImg: photost,
|
||
certificateImg: certificateImgs,
|
||
workImg: workImgs,
|
||
// detailsImg: detailsImgs,
|
||
authentication: that.authentication,
|
||
}),
|
||
})
|
||
.then(({ data }) => {
|
||
console.log("提交结果", data);
|
||
if (data.code == 0) {
|
||
that.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
that.InformationSelect();
|
||
that.prev();
|
||
},
|
||
});
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
}, 1000);
|
||
},
|
||
// 关闭添加信息弹框
|
||
prev() {
|
||
this.dialogFormVisible5 = false;
|
||
this.gameId = "";
|
||
this.myLevel = "";
|
||
this.orderTakingTime = "";
|
||
this.value1 = "";
|
||
this.value2 = "";
|
||
this.orderLevel = "";
|
||
this.orderTakingArea = "";
|
||
this.headImg = "";
|
||
this.oldMoney = "";
|
||
this.money = "";
|
||
this.orderLevel = "";
|
||
this.memberMoney = "";
|
||
this.region = "";
|
||
this.describes = "";
|
||
this.unit = "小时";
|
||
this.latitude = "";
|
||
this.longitude = "";
|
||
this.voiceIntroduce = "";
|
||
this.userIdss = "";
|
||
this.city = "";
|
||
this.nickName1 = "";
|
||
this.nickName2 = "";
|
||
this.phone = "";
|
||
this.detailsImg = [];
|
||
this.certificateImg = [];
|
||
this.workImg = [];
|
||
this.detailsImg = [];
|
||
},
|
||
// 审核
|
||
shenhe(row) {
|
||
this.userId1 = row.userId;
|
||
this.artificerId = row.artificerId;
|
||
this.classSelect1(row.artificerId);
|
||
this.artificerOfclassity = row.classifyId;
|
||
this.dialogFormVisible8 = true;
|
||
},
|
||
// 提交审核
|
||
refuseto(row) {
|
||
if (this.radio == 2 && this.contents == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入驳回理由",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
} else {
|
||
let ids = this.shenheId;
|
||
let status = this.radio;
|
||
let content = this.contents;
|
||
this.$http({
|
||
url: this.$http.adornUrl(`orderTaking/auditorOrderTaking`),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
id: ids,
|
||
status: status,
|
||
content: content,
|
||
}),
|
||
}).then(({ data }) => {
|
||
this.dialogFormVisible8 = false;
|
||
this.$message({
|
||
message: "审核完成",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.radio = 0;
|
||
this.contents = "";
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
});
|
||
}
|
||
},
|
||
// 修改信息弹框
|
||
choiCompile(index, row) {
|
||
console.log(index, row);
|
||
this.labels1 = [];
|
||
this.missions = 1;
|
||
this.renwuTitles = "修改任务";
|
||
if (row) {
|
||
this.gameId = row.gameName.split(",");
|
||
this.checkList = row.gameName.split(",");
|
||
this.myLevel = row.myLevel;
|
||
this.orderLevel = row.orderLevel;
|
||
this.orderTakingArea = row.orderTakingArea;
|
||
this.orderTakingTime = row.orderTakingTime;
|
||
if (row.orderTakingTime) {
|
||
var timess = row.orderTakingTime.split("~");
|
||
this.value1 = timess[0];
|
||
this.value2 = timess[1];
|
||
}
|
||
this.oldMoney = row.oldMoney;
|
||
this.money = row.money;
|
||
this.orderLevel = row.orderLevel;
|
||
this.memberMoney = row.memberMoney;
|
||
this.region = row.region;
|
||
this.describes = row.describes;
|
||
this.unit = row.unit;
|
||
this.voiceIntroduce = row.voiceIntroduce;
|
||
this.headImg = row.headImg;
|
||
this.userIdss = row.userIdss;
|
||
this.latitude = row.latitude;
|
||
this.longitude = row.longitude;
|
||
this.city = row.city;
|
||
this.ids = row.id;
|
||
this.nickName1 = row.userName;
|
||
this.userIdss = row.userId;
|
||
if (row.detailsImg != "" && row.detailsImg != null) {
|
||
this.detailsImg = row.detailsImg;
|
||
}
|
||
if (row.certificateImg != "" && row.certificateImg != null) {
|
||
this.certificateImg = row.certificateImg;
|
||
}
|
||
if (row.workImg != "" && row.workImg != null) {
|
||
this.workImg = row.workImg;
|
||
}
|
||
if (row.detailsImg != "" && row.detailsImg != null) {
|
||
this.detailsImg = row.detailsImg;
|
||
}
|
||
this.storeAddre = this.region;
|
||
this.storeAddress = this.region.split(",");
|
||
|
||
this.status = Number(row.status);
|
||
this.percentage = 100;
|
||
}
|
||
|
||
this.dialogFormVisible5 = true;
|
||
this.getMyLocation();
|
||
},
|
||
// 查看评价
|
||
plCompile(row) {
|
||
console.log(row);
|
||
this.renwuId = row.artificerId;
|
||
this.dialogFormVisible10 = true;
|
||
this.pinglunSelect(row.artificerId);
|
||
},
|
||
// 删除信息
|
||
choidelete(row) {
|
||
let delid = row.id;
|
||
this.$confirm(`确定删除此条信息?`, "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(() => {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/deleteArtificer"),
|
||
method: "post",
|
||
params: this.$http.adornParams({
|
||
artificerId: row.artificerId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "删除成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {},
|
||
});
|
||
}
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
// 筛选信息
|
||
animeDat2(state) {
|
||
this.page = 1;
|
||
this.InformationSelect();
|
||
},
|
||
// 多选
|
||
handleSelectionChange(val) {
|
||
var arr = [];
|
||
for (var i in val) {
|
||
arr.push(val[i].id);
|
||
}
|
||
this.multipleSelection = arr;
|
||
console.log("val", val, this.multipleSelection);
|
||
},
|
||
// 批量删除
|
||
choideletes() {
|
||
console.log(this.multipleSelection);
|
||
let delid = this.multipleSelection.toString();
|
||
this.$confirm(`确定删除信息?`, "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(() => {
|
||
this.$http({
|
||
url: this.$http.adornUrl(
|
||
`information/deleteInformationById?ids=${delid}`
|
||
),
|
||
method: "post",
|
||
params: this.$http.adornData({}),
|
||
}).then(({ data }) => {
|
||
this.$message({
|
||
message: "删除成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
// 任务推荐
|
||
change2(val, row) {
|
||
this.$http({
|
||
url: this.$http.adornUrl(
|
||
`orderTaking/updateOrderTakingRecommend/${row.id}`
|
||
),
|
||
method: "post",
|
||
data: this.$http.adornData({}),
|
||
}).then(({ data }) => {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.homeSelect();
|
||
},
|
||
});
|
||
});
|
||
},
|
||
// 任务上下架
|
||
change3(val, row) {
|
||
this.$http({
|
||
url: this.$http.adornUrl(
|
||
`orderTaking/updateOrderTakingStatus/${row.id}`
|
||
),
|
||
method: "post",
|
||
data: this.$http.adornData({}),
|
||
}).then(({ data }) => {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.homeSelect();
|
||
},
|
||
});
|
||
});
|
||
},
|
||
// 详情跳转
|
||
updatesvideo(row) {
|
||
this.$router.push({
|
||
path: "/userDetail",
|
||
query: {
|
||
userId: row.userId,
|
||
artificerId: row.artificerId,
|
||
},
|
||
});
|
||
},
|
||
changeaa(e) {
|
||
console.log("eeee", e);
|
||
this.value1 = e;
|
||
},
|
||
changeaa1(e) {
|
||
console.log("eeee", e);
|
||
this.value2 = e;
|
||
},
|
||
// 获取服务项目数据
|
||
classSelect() {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/selectMassageTypePage"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
page: this.page,
|
||
limit: this.limit,
|
||
status: "",
|
||
sort: "",
|
||
city: this.citys,
|
||
authentication: "",
|
||
by: "",
|
||
title: this.title,
|
||
classifyId: this.classifyId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
console.log("", data);
|
||
if (data.code == 0) {
|
||
this.tableDataLoading = false;
|
||
let returnData = data.data;
|
||
this.tableData = returnData;
|
||
for (var i in this.tableData.list) {
|
||
if (this.tableData.list[i].contentImg) {
|
||
this.tableData.list[i].contentImg =
|
||
this.tableData.list[i].contentImg.split(",");
|
||
}
|
||
}
|
||
if (this.tableData.list.length == 0) {
|
||
this.page = this.page - 1;
|
||
this.classSelect();
|
||
}
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
|
||
// 启用与否
|
||
change(massageTypeId, status) {
|
||
this.$http({
|
||
url: this.$http.adornUrl(`artificer/updateArtificerMassageStatus`),
|
||
method: "post",
|
||
data: this.$http.adornData({
|
||
artificerId: this.artificerId,
|
||
massageTypeId: massageTypeId,
|
||
status: status,
|
||
}),
|
||
}).then(({ data }) => {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.classSelect();
|
||
},
|
||
});
|
||
});
|
||
},
|
||
// 提交修改、添加项目项目
|
||
refuseto1() {
|
||
if (this.classType == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择项目类型",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.massageTypeTitle == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入项目名称",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.massageImg == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请上传项目图片",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.contentImg.length == 0) {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请上传项目详情图片",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.duration == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入时长",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.isSex === "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择性别要求",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.applyPeople === "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入适用人群",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (this.memberPrice == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请会员价",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.oldPrice == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入原价",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.price == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入现价",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.addNum == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入加钟次数",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (this.massageTypeStatus === "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择状态",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (this.titles == "添加服务项目") {
|
||
var urls = "artificer/insertMassageType";
|
||
} else {
|
||
var urls = "artificer/updateMassageType";
|
||
}
|
||
this.$http({
|
||
url: this.$http.adornUrl(urls),
|
||
method: "post",
|
||
// params: this.$http.adornParams({
|
||
data: this.$http.adornData({
|
||
title: this.massageTypeTitle,
|
||
status: this.massageTypeStatus,
|
||
sales: this.sales,
|
||
price: this.price,
|
||
oldPrice: this.oldPrice,
|
||
memberPrice: this.memberPrice,
|
||
artificerPrice: this.artificerPrice,
|
||
massageTypeId: this.massageTypeId,
|
||
massageImg: this.massageImg,
|
||
isSex: this.isSex,
|
||
applyPeople: this.applyPeople,
|
||
duration: this.duration,
|
||
contentImg: this.contentImg.toString(),
|
||
content: this.content,
|
||
city: this.city,
|
||
labels: this.labels1.toString(),
|
||
classifyId: this.classType,
|
||
addNum: this.addNum,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.dialogFormVisible9 = false;
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.gameName = "";
|
||
this.classSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 删除项目项目
|
||
classdelete(row) {
|
||
let delid = row.massageTypeId;
|
||
this.$confirm(`确定删除此条信息?`, "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(() => {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/deleteMassageType"),
|
||
method: "post",
|
||
params: this.$http.adornParams({
|
||
massageTypeId: row.massageTypeId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "删除成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.classSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {},
|
||
});
|
||
}
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
// 用户评价列表
|
||
pinglunSelect(id) {
|
||
this.userId = this.$store.state.user.id;
|
||
this.$http({
|
||
url: this.$http.adornUrl("takingComment/selectOrderTakingComment"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
page: this.page,
|
||
limit: this.limit,
|
||
id: id,
|
||
}),
|
||
}).then(({ data }) => {
|
||
this.tableDataLoading = false;
|
||
let returnData = data.data;
|
||
this.pinglunData = returnData;
|
||
});
|
||
},
|
||
// 删除评价信息
|
||
pinglundelete(row) {
|
||
let delid = row.id;
|
||
this.$confirm(`确定删除此条信息?`, "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(() => {
|
||
this.$http({
|
||
url: this.$http.adornUrl(
|
||
`takingComment/deleteOrderTakingComment/${delid}`
|
||
),
|
||
method: "post",
|
||
params: this.$http.adornData({}),
|
||
}).then(({ data }) => {
|
||
this.$message({
|
||
message: "删除成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.pinglunSelect(this.renwuId);
|
||
},
|
||
});
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
handleChange(file, fileList) {
|
||
this.hideUpload = fileList.length >= this.limit;
|
||
},
|
||
// handleRemove(file, fileList) {
|
||
// this.hideUpload = fileList.length >= this.limit;
|
||
// },
|
||
handleAvatarSuccess2(file, fileList) {
|
||
this.contentImg = file.data;
|
||
},
|
||
handleAvatarSuccess3(file, fileList) {
|
||
this.certificateImg = file.data;
|
||
},
|
||
handleAvatarSuccess4(file, fileList) {
|
||
this.workImg = file.data;
|
||
},
|
||
// 删除
|
||
clear(index) {
|
||
this.contentImg.splice(index, 1);
|
||
},
|
||
// 删除
|
||
clear1(index) {
|
||
this.certificateImg.splice(index, 1);
|
||
},
|
||
clear2(index) {
|
||
this.workImg.splice(index, 1);
|
||
},
|
||
clear3(index) {
|
||
this.contentImg.splice(index, 1);
|
||
},
|
||
//上传成功
|
||
handleUploadSuccess(file, fileList) {
|
||
this.contentImg.push(file.data);
|
||
console.log("this.contentImg", this.contentImg);
|
||
// this.contentImg += file.data + ','
|
||
},
|
||
//上传成功
|
||
handleUploadSuccess1(file, fileList) {
|
||
this.certificateImg.push(file.data);
|
||
console.log("this.certificateImg", this.certificateImg);
|
||
},
|
||
//上传成功
|
||
handleUploadSuccess2(file, fileList) {
|
||
this.workImg.push(file.data);
|
||
console.log("this.workImg", this.workImg);
|
||
},
|
||
//上传成功
|
||
handleUploadSuccess3(file, fileList) {
|
||
this.contentImg.push(file.data);
|
||
console.log("this.contentImg", this.contentImg);
|
||
},
|
||
onprogress1(event, file, fileList) {
|
||
console.log("详情图上传进度", parseInt(event.percent));
|
||
this.percentage1 = parseInt(event.percent);
|
||
},
|
||
// 获取项目项目数据
|
||
classSelect1(artificerId) {
|
||
this.tableDataLoading1 = true;
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/selectArtificerMassageList"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
artificerId: artificerId,
|
||
status: "",
|
||
}),
|
||
}).then(({ data }) => {
|
||
console.log("```", data);
|
||
if (data.code == 0) {
|
||
this.tableDataLoading1 = false;
|
||
let returnData = data.data;
|
||
this.tableData3 = returnData;
|
||
console.log(this.tableData3);
|
||
for (var i in this.tableData3) {
|
||
if (this.tableData3[i].contentImg) {
|
||
this.tableData3[i].contentImg =
|
||
this.tableData3[i].contentImg.split(",");
|
||
}
|
||
}
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 项目列表数据
|
||
classSelect2(artificerId) {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/selectMassageTypePage"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
artificerId: artificerId,
|
||
page: this.page3,
|
||
classifyId: this.artificerOfclassity,
|
||
limit: this.limit3,
|
||
status: "",
|
||
sort: "",
|
||
city: this.citys,
|
||
title: this.title,
|
||
authentication: "",
|
||
by: "",
|
||
}),
|
||
}).then(({ data }) => {
|
||
console.log("````````````", data);
|
||
if (data.code == 0) {
|
||
this.tableDataLoading = false;
|
||
let returnData = data.data;
|
||
this.tableData4 = returnData;
|
||
console.log(this.tableData4.list);
|
||
for (var i in this.tableData4.list) {
|
||
if (this.tableData4.list[i].contentImg) {
|
||
this.tableData4.list[i].contentImg =
|
||
this.tableData4.list[i].contentImg.split(",");
|
||
}
|
||
}
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 添加项目
|
||
choiadd() {
|
||
this.classSelect2(this.artificerId);
|
||
this.dialogFormVisible11 = true;
|
||
},
|
||
// 确认添加
|
||
classListAdd(row) {
|
||
console.log("useridsssssssss", row);
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/insertArtificerMassage"),
|
||
method: "post",
|
||
params: this.$http.adornParams({
|
||
userId: this.userId1,
|
||
artificerMassages: row.massageTypeId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
console.log("", data);
|
||
if (data.code == 0) {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "添加成功",
|
||
type: "warning",
|
||
});
|
||
|
||
this.classSelect1(this.artificerId);
|
||
this.dialogFormVisible11 = false;
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 删除师傅项目
|
||
classListdelete(row) {
|
||
let delid = row.id;
|
||
this.$confirm(`确定删除此条信息?`, "提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(() => {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/deleteArtificerMassage"),
|
||
method: "post",
|
||
params: this.$http.adornParams({
|
||
artificerMassageId: row.artificerMassageId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
this.$message({
|
||
message: "删除成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.classSelect1(this.artificerId);
|
||
},
|
||
});
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
// 加钟项目弹框
|
||
jiazhongBtn(row) {
|
||
this.parentId = row.massageTypeId;
|
||
this.classSelectJz();
|
||
this.dialogFormVisibleJz = true;
|
||
},
|
||
// 项目类型
|
||
fwSelect() {
|
||
this.$http({
|
||
url: this.$http.adornUrl("sys/dict/selectDictList"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
type: "服务类型",
|
||
}),
|
||
}).then(({ data }) => {
|
||
let returnData = data.data;
|
||
this.fwData = returnData;
|
||
});
|
||
},
|
||
// 获取加钟项目数据
|
||
classSelectJz() {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/selectMassageTypePage"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
page: this.pageJ,
|
||
limit: this.limitJ,
|
||
parentId: this.parentId,
|
||
status: "",
|
||
sort: "",
|
||
city: "",
|
||
authentication: "",
|
||
by: "",
|
||
title: "",
|
||
}),
|
||
}).then(({ data }) => {
|
||
console.log("", data);
|
||
if (data.code == 0) {
|
||
this.tableDataLoadingJz = false;
|
||
let returnData = data.data;
|
||
this.tableDataJz = returnData;
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 添加、修改加钟项目
|
||
classAddJz(row) {
|
||
console.log("row", row);
|
||
if (row != 0) {
|
||
this.titles = "修改加钟项目";
|
||
this.massageTypeTitle = row.title;
|
||
this.massageTypeStatus = row.status;
|
||
this.sales = row.sales;
|
||
this.price = row.price;
|
||
this.oldPrice = row.oldPrice;
|
||
this.memberPrice = row.memberPrice;
|
||
this.artificerPrice = row.artificerPrice;
|
||
this.massageTypeId = row.massageTypeId;
|
||
this.massageImg = row.massageImg;
|
||
// this.isSex = row.isSex
|
||
this.duration = row.duration;
|
||
this.contentImg = row.contentImg;
|
||
this.content = row.content;
|
||
this.city = row.city;
|
||
this.labels1 = row.labels.split(",");
|
||
this.storeAddre = this.city;
|
||
|
||
// this.storeAddress = this.storeAddress.push(this.city)
|
||
} else {
|
||
this.titles = "添加加钟项目";
|
||
this.massageTypeTitle = "";
|
||
this.massageTypeStatus = "";
|
||
this.sales = "";
|
||
this.price = "";
|
||
this.oldPrice = "";
|
||
this.memberPrice = "";
|
||
this.artificerPrice = "";
|
||
this.massageTypeId = "";
|
||
this.massageImg = "";
|
||
// this.isSex = ''
|
||
this.duration = "";
|
||
this.contentImg = [];
|
||
this.content = "";
|
||
this.city = "";
|
||
this.labels1 = [];
|
||
this.storeAddre = "请选择城市";
|
||
}
|
||
this.dialogFormVisibleJzA = true;
|
||
},
|
||
// 提交修改、添加加钟项目
|
||
refusetoJz() {
|
||
if (this.classType == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择项目类型",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.massageTypeTitle == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入项目名称",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
// if (this.massageImg == '') {
|
||
// this.$notify({
|
||
// title: '提示',
|
||
// duration: 1800,
|
||
// message: '请上传项目图片',
|
||
// type: 'warning'
|
||
// })
|
||
// return
|
||
// }
|
||
// if (this.contentImg.length == 0) {
|
||
// this.$notify({
|
||
// title: '提示',
|
||
// duration: 1800,
|
||
// message: '请上传项目详情图片',
|
||
// type: 'warning'
|
||
// })
|
||
// return
|
||
// }
|
||
if (this.duration == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入时长",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
// if (this.isSex === '') {
|
||
// this.$notify({
|
||
// title: '提示',
|
||
// duration: 1800,
|
||
// message: '请选择性别要求',
|
||
// type: 'warning'
|
||
// })
|
||
// return
|
||
// }
|
||
if (this.memberPrice == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请会员价",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.artificerPrice == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入师傅价",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.price == "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请输入现价",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
if (this.massageTypeStatus === "") {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: "请选择状态",
|
||
type: "warning",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (this.titles == "添加加钟项目") {
|
||
var urls = "artificer/insertMassageType";
|
||
} else {
|
||
var urls = "artificer/updateMassageType";
|
||
}
|
||
this.$http({
|
||
url: this.$http.adornUrl(urls),
|
||
method: "post",
|
||
// params: this.$http.adornParams({
|
||
data: this.$http.adornData({
|
||
title: this.massageTypeTitle,
|
||
status: this.massageTypeStatus,
|
||
sales: this.sales,
|
||
price: this.price,
|
||
oldPrice: this.oldPrice,
|
||
memberPrice: this.memberPrice,
|
||
artificerPrice: this.artificerPrice,
|
||
massageTypeId: this.massageTypeId,
|
||
massageImg: this.massageImg,
|
||
// 'isSex': this.isSex,
|
||
duration: this.duration,
|
||
contentImg: this.contentImg.toString(),
|
||
content: this.content,
|
||
city: this.city,
|
||
labels: this.labels1.toString(),
|
||
classifyId: this.classType,
|
||
parentId: this.parentId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.dialogFormVisibleJzA = false;
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.classSelectJz();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 状态师傅
|
||
changeS(val, userId) {
|
||
this.$http({
|
||
url: this.$http.adornUrl(`artificer/updateArtificer`),
|
||
method: "post",
|
||
params: this.$http.adornParams({
|
||
userId: userId,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
//积分规则
|
||
changeJfgz(ynJfgz, userId) {
|
||
this.$http({
|
||
url: this.$http.adornUrl(`artificer/updateJfgz`),
|
||
method: "post",
|
||
params: this.$http.adornParams({
|
||
userId: userId,
|
||
ynJfgz: ynJfgz,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 信用分明细弹框
|
||
xinyongBtn(row) {
|
||
this.artificerId = row.userId;
|
||
this.xinyongSelect(this.artificerId);
|
||
this.dialogFormVisibleXyf = true;
|
||
},
|
||
// 信用分明细数据
|
||
xinyongSelect(artificerId) {
|
||
this.tableDataLoadingXyf = true;
|
||
this.$http({
|
||
url: this.$http.adornUrl("message/selectMessageByUserId"),
|
||
method: "get",
|
||
params: this.$http.adornParams({
|
||
userId: artificerId,
|
||
page: this.page1,
|
||
limit: this.size1,
|
||
state: 8,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.tableDataLoadingXyf = false;
|
||
let returnData = data.data;
|
||
this.tableDataXyf = returnData;
|
||
} else {
|
||
this.$notify({
|
||
title: "提示",
|
||
duration: 1800,
|
||
message: data.msg,
|
||
type: "warning",
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 是否优选
|
||
changeY(val, artificerId) {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/updateArtificers"),
|
||
method: "post",
|
||
// params: this.$http.adornParams({
|
||
data: this.$http.adornData({
|
||
artificerId: artificerId,
|
||
isGoods: val,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 是否热度最高
|
||
changeR(val, artificerId) {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/updateArtificers"),
|
||
method: "post",
|
||
// params: this.$http.adornParams({
|
||
data: this.$http.adornData({
|
||
artificerId: artificerId,
|
||
isHot: val,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 是否明星技师
|
||
changeM(val, artificerId) {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/updateArtificers"),
|
||
method: "post",
|
||
// params: this.$http.adornParams({
|
||
data: this.$http.adornData({
|
||
artificerId: artificerId,
|
||
isStart: val,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
//修改提成比例
|
||
xiugai(row) {
|
||
this.titleBl = "抽成比例";
|
||
this.proportion = row.rate;
|
||
this.artificerId = row.artificerId;
|
||
this.dialogFormVisible2 = true;
|
||
},
|
||
//修改技师类型
|
||
xiugaiTecType(row) {
|
||
this.titleBl = "技师类型";
|
||
this.tecTypeValue = row.technicianType;
|
||
this.artificerId = row.artificerId;
|
||
this.tecTypeVisible = true;
|
||
},
|
||
StairNoticeTo2() {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/updateArtificers"),
|
||
method: "post",
|
||
// params: this.$http.adornParams({
|
||
data: this.$http.adornData({
|
||
artificerId: this.artificerId,
|
||
rate: this.proportion,
|
||
}),
|
||
}).then(({ data }) => {
|
||
console.log("data", data);
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "修改成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.dialogFormVisible2 = false;
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
//修改技师类型
|
||
StairNoticeTo3() {
|
||
this.$http({
|
||
url: this.$http.adornUrl("artificer/updateArtificers"),
|
||
method: "post",
|
||
// params: this.$http.adornParams({
|
||
data: this.$http.adornData({
|
||
artificerId: this.artificerId,
|
||
technicianType: this.tecTypeValue,
|
||
}),
|
||
}).then(({ data }) => {
|
||
console.log("data", data);
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "修改成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.tecTypeVisible = false;
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {},
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 取消师傅
|
||
quxiaoJs(row) {
|
||
this.$confirm(
|
||
`确定要取消师傅?取消后师傅的认证信息将会删除,确定继续操作`,
|
||
"提示",
|
||
{
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
}
|
||
).then(() => {
|
||
this.$http({
|
||
url: this.$http.adornUrl("user/updateArtificer"),
|
||
method: "post",
|
||
data: this.$http.adornData({
|
||
// params: this.$http.adornParams({
|
||
userId: row.userId,
|
||
status: 2,
|
||
}),
|
||
}).then(({ data }) => {
|
||
if (data.code == 0) {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.InformationSelect();
|
||
},
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: data.msg,
|
||
type: "warning",
|
||
duration: 1500,
|
||
onClose: () => {},
|
||
});
|
||
}
|
||
});
|
||
});
|
||
},
|
||
getVipText(val){
|
||
var text = "";
|
||
var vipTypeList = this.vipTypeList;
|
||
for(var i=0;i<vipTypeList.length;i++){
|
||
if(vipTypeList[i].vipNameType == val){
|
||
text = vipTypeList[i].vipName;
|
||
break;
|
||
}
|
||
}
|
||
return text;
|
||
},
|
||
// 获取vip列表
|
||
vipSelect() {
|
||
this.tableDataLoading = true
|
||
this.$http({
|
||
url: this.$http.adornUrl('vipDetails/selectVipDetailsListByType'),
|
||
method: 'get',
|
||
params: this.$http.adornParams({
|
||
'page': 1,
|
||
'limit': 999,
|
||
'type':'1',
|
||
})
|
||
}).then(({
|
||
data
|
||
}) => {
|
||
this.vipTypeList = data.data.list
|
||
})
|
||
},
|
||
},
|
||
mounted() {
|
||
this.vipSelect();
|
||
this.InformationSelect();
|
||
this.homeSelect();
|
||
this.fwSelect();
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style>
|
||
.customWidth {
|
||
width: 80% !important;
|
||
}
|
||
|
||
.adver_main.box {
|
||
display: block;
|
||
max-width: 100%;
|
||
text-align: center;
|
||
border: 1px dotted rgba(67, 79, 103, 0.4);
|
||
}
|
||
|
||
.cards {
|
||
padding: 0 8px;
|
||
margin-bottom: 15px;
|
||
}
|
||
|
||
.adver_main.box a {
|
||
display: flex;
|
||
justify-content: center;
|
||
height: 150px;
|
||
line-height: 150px;
|
||
text-decoration: none;
|
||
}
|
||
|
||
.bannerManin {
|
||
border: 1px solid #e8e8e8;
|
||
font-size: 14px;
|
||
padding: 0 24px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
height: 113px;
|
||
color: rgba(0, 0, 0, 0.65);
|
||
}
|
||
|
||
.bannerManin span {
|
||
display: inline-block;
|
||
margin-left: 5px;
|
||
}
|
||
|
||
.bannerManin img {
|
||
width: 48px;
|
||
height: 48px;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.bannerbtn {
|
||
display: flex;
|
||
border-top: none !important;
|
||
border: 1px solid #e8e8e8;
|
||
padding: 11px;
|
||
font-size: 14px;
|
||
color: #3e8ef7;
|
||
}
|
||
|
||
.bannerbtn a {
|
||
flex: 1;
|
||
text-align: center;
|
||
color: #3e8ef7 !important;
|
||
text-decoration: none;
|
||
}
|
||
|
||
.imgs {
|
||
position: relative;
|
||
border-radius: 6px;
|
||
width: 148px;
|
||
height: 148px;
|
||
margin-right: 10px;
|
||
display: inline-block;
|
||
}
|
||
|
||
.dels {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
display: none;
|
||
}
|
||
|
||
.dels .el-icon-delete {
|
||
line-height: 148px;
|
||
padding-left: 58px;
|
||
font-size: 25px;
|
||
color: #fff;
|
||
}
|
||
|
||
.imgs:hover .dels {
|
||
width: 100%;
|
||
height: 100%;
|
||
background: #000;
|
||
display: block;
|
||
opacity: 0.5;
|
||
}
|
||
|
||
.bqList {
|
||
padding: 4px 14px;
|
||
margin: 4px;
|
||
border: 1px solid #efefef;
|
||
font-size: 12px;
|
||
color: #999;
|
||
border-radius: 4px;
|
||
margin-right: 15px;
|
||
}
|
||
|
||
.delss {
|
||
display: none;
|
||
position: relative;
|
||
}
|
||
|
||
.delss .el-icon-delete {
|
||
position: absolute;
|
||
top: 0;
|
||
}
|
||
|
||
.bqList:hover .delss {
|
||
display: initial;
|
||
opacity: 0.5;
|
||
}
|
||
|
||
.tj {
|
||
padding: 6px !important;
|
||
margin: 4px;
|
||
font-size: 12px;
|
||
border: 1px solid #ccc;
|
||
border-radius: 4px;
|
||
}
|
||
</style>
|