sadjv3_admin/src/views/applyList/technician.vue

4436 lines
135 KiB
Vue
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>&nbsp;&nbsp;&nbsp; -->
<!-- <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>&nbsp;&nbsp;&nbsp; -->
<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
>&nbsp;&nbsp;
</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
>&nbsp;&nbsp;
</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
>&nbsp;&nbsp;
</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
>&nbsp;&nbsp;
</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
>&nbsp;&nbsp;
<!-- <el-button style="margin: 10px 0;" :disabled="!isAuth('locality:add')" size="mini" type="primary"
icon="document" @click="choiaddNotice()">添加任务</el-button>&nbsp;&nbsp;&nbsp;&nbsp; -->
</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
>&nbsp;&nbsp;&nbsp;&nbsp;
<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
>&nbsp;&nbsp;&nbsp;
</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>