sadjv3_admin/src/views/allocation/allocationList.vue

1262 lines
46 KiB
Vue
Raw Normal View History

2024-06-05 19:13:04 +08:00
<template>
<div>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="全局系统配置" name="first">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="服务费配置" name="second">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<!-- <el-tab-pane label="首页配置" name="thirdly">
<el-table
v-loading="tableDataLoading"
:data="tableData">
<el-table-column
fixed
prop="type"
label="编号"
align="center"
width="80">
</el-table-column>
<el-table-column
prop="min"
label="类型">
</el-table-column>
<el-table-column
prop="value"
label="是否启用"
width="500">
</el-table-column>
<el-table-column
prop="createAt"
label="创建时间">
</el-table-column>
<el-table-column
label="操作"
prop="id"
width="120">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
:disabled="!isAuth('allocationList:update')"
@click="amendWhether(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
修改弹框
<el-dialog title="修改" :visible.sync="dialogFormVisible1" center>
<el-form :model="form2">
<el-form-item label="配置类型:" :label-width="formLabelWidth" >
<el-input v-model="form2.min" style="width:65%;" readonly ></el-input>
</el-form-item>
<el-form-item label="是否启用:" :label-width="formLabelWidth" >
<el-select v-model="form2.value" placeholder="请选择类型" style="width:65%;">
<el-option v-for="item in values" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible1 = false"> </el-button>
<el-button type="primary" @click="WhetherNoticeTo()"> </el-button>
</div>
</el-dialog>
</el-tab-pane> -->
<el-tab-pane label="客服配置" name="kefu">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型" width="250">
</el-table-column>
<el-table-column prop="value" label="内容">
</el-table-column>
<el-table-column prop="createAt" label="创建时间" width="180">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="微信配置" name="fifth">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="支付宝配置" name="sixth">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="短信配置" name="seventh">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="协议配置" name="xieyi">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="APP消息推送配置" name="app">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="文件上传配置" name="wenjian">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="开关配置" name="kaiguan">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型" width="250">
</el-table-column>
<el-table-column prop="value" label="内容">
</el-table-column>
<el-table-column prop="createAt" label="创建时间" width="180">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="图片配置" name="image">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型" width="250">
</el-table-column>
<el-table-column prop="value" label="内容">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}
</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间" width="180">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<!-- 分成明细配置 -->
<el-tab-pane label="分成明细配置" name="fcmx">
<div style="display: flex;justify-content: left;align-items: center;">
<div>请选择服务类型</div>
<el-select v-model="serverValue" placeholder="请选择服务类型" @change="changeServerType">
2024-06-06 15:33:17 +08:00
<el-option v-for="item in serverList" :key="item.id" :label="item.value" :value="item.id"></el-option>
2024-06-05 19:13:04 +08:00
</el-select>
</div>
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="id" label="编号" align="center" width="80">
</el-table-column>
<el-table-column fixed prop="grade" label="技师等级" align="center">
</el-table-column>
<el-table-column prop="outstandingAchievement" label="最低业绩">
</el-table-column>
<el-table-column prop="clockRate" label="加钟率">
</el-table-column>
<el-table-column prop="depositRate" label="充值率">
</el-table-column>
<el-table-column prop="durationOnline" label="在线时长">
</el-table-column>
<el-table-column prop="integral" label="积分" width="180">
</el-table-column>
<el-table-column prop="proportionalSharing" label="分成比例">
</el-table-column>
<el-table-column label="操作" prop="id">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="openDividedDialog(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<!-- 修改与取消服务配置 -->
<el-tab-pane label="修改与取消服务配置" name="v3_order_form">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}
</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')" @click="amend(scope.$index, scope.row)">
编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<!-- 出行配置() -->
<el-tab-pane label="出行配置" name="v3_travel_conf">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{ scope.row.value }}
</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')" @click="amend(scope.$index, scope.row)">
编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
2024-06-05 19:13:04 +08:00
<!-- <el-tab-pane label="商家配置" name="shop">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型">
</el-table-column>
<el-table-column prop="value" label="内容" width="500">
<template slot-scope="scope">
<div style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">{{scope.row.value}}</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)" v-if="scope.row.type!=333">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane> -->
<!-- <el-tab-pane label="出行配置" name="chuxing">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型" width="250">
</el-table-column>
<el-table-column prop="value" label="内容">
<template slot-scope="scope">
<div
style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;max-height:80px;">
{{scope.row.value}}
</div>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间" width="180">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane> -->
<!-- <el-tab-pane label="语音配置" name="video">
<el-table v-loading="tableDataLoading" :data="tableData">
<el-table-column fixed prop="type" label="编号" align="center" width="80">
</el-table-column>
<el-table-column prop="min" label="类型" width="250">
</el-table-column>
<el-table-column prop="value" label="内容">
<template slot-scope="scope">
<audio v-if="scope.row.value!=''&&scope.row.value!=null"
:src="scope.row.value" type="audio/wav" controls="controls"></audio>
<span v-else>暂无语音</span>
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间" width="180">
</el-table-column>
<el-table-column label="操作" prop="id" width="120">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('allocationList:update')"
@click="amend(scope.$index, scope.row)">编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane> -->
</el-tabs>
<!-- 修改弹框 -->
<el-dialog title="修改" :visible.sync="dialogFormVisible" center>
<el-form :model="form">
<el-form-item label="配置类型:" :label-width="formLabelWidth">
<el-input v-model="form.min" style="width:65%;" readonly></el-input>
</el-form-item>
<el-form-item label="内容:" :label-width="formLabelWidth">
<quill-editor v-if="form.conditionFrom == 'xieyi'" ref="myTextEditor" v-model="form.value"
:options="quillOption"
style="padding-bottom: 50px;height: 300px;width: 72%;display: inline-table;margin-bottom: 60px;">
</quill-editor>
<div v-else-if="form.conditionFrom == 'image'"
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="form.value"
:action="uploadUrl" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="form.value" :src="form.value" class="avatar"
style="border-radius: 6px;width: 140px;height: 140px;" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
<div v-else-if="form.conditionFrom == 'yuyin'">
<el-upload class="upload-demo" v-model="form.value"
:action="uploadMusicUrl" :show-file-list="false"
:on-success="handleSuccess" :before-upload="beforeAvatarUpload"
:on-progress="handlePreview">
<el-button size="small" type="primary" v-loading="tableDataLoading6">点击上传</el-button>
<el-input v-model="form.value" style="width:300px;">
</el-input>
</el-upload>
</div>
<div v-else-if="form.conditionFrom == 'kaiguan'">
<div>
<el-radio-group v-model="form.value">
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</div>
</div>
<div v-else-if="form.type == 330">
<div>
<el-input v-model="address" @keydown.enter.native="select" style="width:65%;"></el-input>
<div>
<div id="container1" style="width:80%;height:500px;margin-top: 10px;"></div>
</div>
</div>
</div>
<div v-else-if="form.conditionFrom == 'v3_order_form'">
<template v-if="form.type == 437">
<!-- 三个数据数字 -->
<el-input-number :controls="false" :precision="1" :min="0" :step="1" :value="getSplitValue(0,0)" @change="(v) => form.value = `${v || 0},${getSplitValue(1,0)},${getSplitValue(2,0)}`"/>小时
<el-input-number :controls="false" :precision="1" :min="0" :step="1" :value="getSplitValue(1,0)" @change="(v) => form.value = `${getSplitValue(0,0)},${v || 0},${getSplitValue(2,0)}`"/>小时
<el-input-number :controls="false" :precision="2" :min="0" :step="1" :value="getSplitValue(2,0)" @change="(v) => form.value = `${getSplitValue(0,0)},${getSplitValue(1,0)},${v}`"/>
</template>
<template v-else-if="form.type == 438">
<!-- //两个数据,数字 -->
<el-input-number :controls="false" :precision="1" :min="0" :step="1" :value="getSplitValue(0,0)" @change="(v) => form.value = `${v},${getSplitValue(1,0)}`"/>小时
<el-input-number :controls="false" :precision="2" :min="0" :step="1" :value="getSplitValue(1,0)" @change="(v) => form.value = `${getSplitValue(0,0)},${v || 0}`"/>
</template>
<template v-else-if="form.type == 439">
<!-- //三个数据1个数字两个百分比 -->
<el-input-number :controls="false" :precision="0" :min="0" :step="1" :value="getSplitValue(0,0)" @change="(v) => form.value = `${v || 0},${getSplitValue(1,0)},${getSplitValue(2,0)}`"/>分钟
<el-input-number :controls="false" :precision="0" :min="0" :max="100" :step="1" :value="getSplitValue(1,0)" @change="(v) => form.value = `${getSplitValue(0,0)},${v || 0},${getSplitValue(2,0)}`"/>%
<el-input-number :controls="false" :precision="2" :min="0" :max="100" :step="1" :value="getSplitValue(2,0)" @change="(v) => form.value = `${getSplitValue(0,0)},${getSplitValue(1,0)},${v || 0}`"/>%
</template>
<template v-else>
<!-- 纯数字最小为0, -->
<el-input-number :precision="2" :min="0" :step="1" v-model="form.value" style="width:65%;" @change="(v) => form.value = v || 0"></el-input-number>
</template>
</div>
<div v-else-if="form.conditionFrom == 'v3_travel_conf'">
<template v-if="form.type == 443 || form.type == 444">
<!-- 两个日期 -->
<!-- <el-date-picker style="width: 160px;margin-left: 10px;" align="right" type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择开始时间"/> -->
<!-- <el-date-picker :value="[getSplitValue(0,'0521'), getSplitValue(1,'0823')]" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" value-format="MMdd" @changerange="log"/> -->
2024-06-13 00:57:52 +08:00
<el-date-picker v-model="form.value2" type="daterange" style="width:65%;" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" format="MM-dd" value-format="MMdd" @change="(vs) => form.value = (vs || ['','']).join(',')"/>
</template>
<template v-else-if="form.type == 445 || form.type == 446">
<!-- 两个时间 -->
<el-time-picker v-model="form.value2" style="width:65%;" format="HH:mm:ss" value-format="HHmmss" is-range range-separator="" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围" @change="(vs) => form.value = (vs || ['','']).join(',')"/>
</template>
<template v-else-if="form.type == 447">
<!-- 是否 -->
<el-switch v-model="form.value" active-value="true" inactive-value="false" active-text="动态价格" inactive-text="固定价格"/>
</template>
2024-06-27 21:51:45 +08:00
<template v-else-if="form.type == 450">
<!-- 是否 -->
<el-switch v-model="form.value" active-value="true" inactive-value="false" active-text="往返" inactive-text="单程"/>
</template>
<template v-else>
<el-input v-model="form.value" style="width:65%;"></el-input>
</template>
</div>
2024-06-05 19:13:04 +08:00
<el-input v-else v-model="form.value" style="width:65%;"></el-input>
<!-- <el-input v-model="form.value" style="width:65%;"></el-input> -->
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="amendNoticeTo()"> </el-button>
</div>
</el-dialog>
<!-- 分成明细配置的修改弹窗 -->
<el-dialog title="修改" :visible.sync="dividedDialogFormVisible" center>
<el-form :rules="rules" ref="ruleForm" :model="dividedDetailsForm">
<el-form-item label="技师等级:" :label-width="formLabelWidth">
<el-input v-model="dividedDetailsForm.grade" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="最低业绩:" :label-width="formLabelWidth">
<el-input v-model="dividedDetailsForm.outstandingAchievement" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="加钟率:" :label-width="formLabelWidth" prop="clockRate">
<el-input v-model="dividedDetailsForm.clockRate" type="number" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="充值率:" :label-width="formLabelWidth" prop="depositRate">
<el-input v-model="dividedDetailsForm.depositRate" type="number" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="在线时长:" :label-width="formLabelWidth">
<el-input v-model="dividedDetailsForm.durationOnline" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="积分:" :label-width="formLabelWidth">
<el-input v-model="dividedDetailsForm.integral" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="分成比例:" :label-width="formLabelWidth" prop="proportionalSharing">
<el-input v-model="dividedDetailsForm.proportionalSharing" type="number"
style="width:65%;"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dividedDialogFormVisible = false;"> </el-button>
<el-button type="primary" @click="dividedDetailsSubmit()"> </el-button>
</div>
</el-dialog>
</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 { serverPaths } from '@/utils/enumData'
import quillConfig from '../mission/quill-config.js'
import {
provinceAndCityData,
regionData,
provinceAndCityDataPlus,
regionDataPlus,
CodeToText,
TextToCode
} from 'element-china-area-data'
var cityOptions = []
var geocoder, map, markersArray = [];
import axios from 'axios';
import {
jsonp
} from 'vue-jsonp'
export default {
name: 'news',
components: {
quillEditor
},
data() {
let clockRate = (rule, value, callback) => {
console.log(value);
if (value && value > 1 || value < 0) {
callback(new Error('请输入0-1之间的数字'));
}
}
let depositRate = (rule, value, callback) => {
console.log(value);
if (value && value > 1 || value < 0) {
callback(new Error('请输入0-1之间的数字'));
}
}
let proportionalSharing = (rule, value, callback) => {
console.log(value);
if (value && value > 1 || value < 0) {
callback(new Error('请输入0-1之间的数字'));
}
}
return {
uploadUrl: serverPaths.uploadUrl,
uploadMusicUrl: serverPaths.uploadMusicUrl,
openValue: '是',
closeValue: '否',
limit: 10,
page: 0,
min: '',
value: '',
id: '',
condition: 'xitong',
activeName: 'first',
dialogFormVisible: false,
dialogFormVisible1: false,
tableDataLoading6: false,
tableDataLoading: true,
dividedDialogFormVisible: false,
formLabelWidth: '200px',
form: {
id: '',
min: '',
value: '',
value2: '',
2024-06-05 19:13:04 +08:00
type: '',
},
dividedDetailsForm: {
id: "",
grade: "",
outstandingAchievement: "",
clockRate: "",
durationOnline: "",
integral: "",
proportionalSharing: "",
depositRate: "",
},
form2: {
id: '',
min: '',
value: '',
type: '',
},
values: [{
value: 1,
label: '是'
},
{
value: 2,
label: '否'
}
],
tableData: [],
checkBoxData: [], //多选框选择的值
sec: 0, //语音时长
// 地图相关
loadingMap: true,
BMap: '',
map: '',
geoc: '',
keyword: '',
showMap: false,
pointLngLat: '',
center: {
lng: 109.45744048529967,
lat: 36.49771311230842
},
longitude: '', //纬度
latitude: '', //经度
address: '',
serverList: [],
2024-06-06 15:33:17 +08:00
serverValue: "",
2024-06-05 19:13:04 +08:00
ruleForm: {
id: "",
grade: "",
outstandingAchievement: "",
clockRate: "",
durationOnline: "",
integral: "",
proportionalSharing: "",
depositRate: "",
},
rules: {
clockRate: [
{ trigger: 'change', validator: clockRate },
], depositRate: [
{ trigger: 'change', validator: depositRate },
],
proportionalSharing: [
{ trigger: 'change', validator: proportionalSharing },
],
}
}
},
methods: {
log(...d) {
console.log('log ->',...d);
},
getSplitValue(index = 0, defTxt = '', splitTxt = ',') {
return this.getSplitOtherValue(null,index,defTxt,splitTxt);
},
getSplitOtherValue(v, index = 0, defTxt = '', splitTxt = ',') {
let value = v;
if(!value) value = this.form.value || '';
let txts = value.split(splitTxt);
return txts[index] || defTxt;
},
2024-06-05 19:13:04 +08:00
changeServerType() {
console.log(this.serverValue);
this.getDividedDetailsList();
},
getServer() {
this.$http({
url: this.$http.adornUrl('sys/dict/list'),
method: 'get',
params: this.$http.adornParams({
'page': 1,
'limit': 100,
'parentId': 22,
})
2024-06-06 15:33:17 +08:00
}).then(({ data }) => {
2024-06-05 19:13:04 +08:00
if (data && data.code === 0) {
this.serverList = data.page.list;
}
})
},
//上传成功
handleAvatarSuccess(file) {
this.form.value = file.data
},
handleSizeChange(val) {
this.limit = val;
this.dataSelect();
},
handleCurrentChange(val) {
this.page = val - 1;
this.dataSelect();
},
handleClick(tab, event) {
if (tab._props.label == '全局系统配置') {
this.condition = 'xitong'
this.dataSelect()
} else if (tab._props.label == '首页配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'shouye'
this.dataSelect()
} else if (tab._props.label == '微信配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'weixin'
this.dataSelect()
} else if (tab._props.label == '支付宝配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'zhifubao'
this.dataSelect()
} else if (tab._props.label == '短信配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'duanxin'
this.dataSelect()
} else if (tab._props.label == '任务系统配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'renwu'
this.dataSelect()
} else if (tab._props.label == '协议配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'xieyi'
this.dataSelect()
} else if (tab._props.label == 'APP消息推送配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'push'
this.dataSelect()
} else if (tab._props.label == '文件上传配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'oss'
this.dataSelect()
} else if (tab._props.label == '开关配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'kaiguan'
this.dataSelect()
} else if (tab._props.label == '图片配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'image'
this.dataSelect()
} else if (tab._props.label == '分成明细配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'fcmx';
this.getDividedDetailsList();
this.getServer();
} else if (tab._props.label == '出行配置-') {
2024-06-05 19:13:04 +08:00
this.condition = 'chuxing'
this.dataSelect()
} else if (tab._props.label == '语音配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'yuyin'
this.dataSelect()
} else if (tab._props.label == '服务费配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'fuwufei'
this.dataSelect()
} else if (tab._props.label == '客服配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'kefu'
this.dataSelect()
} else if (tab._props.label == '商家配置') {
2024-06-05 19:13:04 +08:00
this.condition = 'shop'
this.dataSelect()
} else if (tab._props.label == '修改与取消服务配置') {
this.condition = 'v3_order_form'
this.dataSelect()
} else if (tab._props.label == '出行配置') {
this.condition = 'v3_travel_conf'
this.dataSelect()
2024-06-05 19:13:04 +08:00
}
},
getDividedDetailsList() {
this.tableDataLoading = true;
console.log(this.condition, "12312hhh");
console.log(this.serverValue);
2024-06-06 15:33:17 +08:00
// if(!this.serverValue){
// this.serverValue = '91'
// }
2024-06-05 19:13:04 +08:00
this.tableData = [];
this.$http({
// type服务类型 1精油2中医推拿
2024-06-06 15:33:17 +08:00
url: this.$http.adornUrl(`common/fcmx/` + (this.serverValue?this.serverValue:'91')),
2024-06-05 19:13:04 +08:00
method: 'get',
}).then(({
data
}) => {
if (data && data.code === 0) {
this.tableDataLoading = false
data.data.forEach((item) => {
item.clockRate = (item.clockRate * 100) + "%";
item.depositRate = (item.depositRate * 100) + "%";
item.durationOnline = item.durationOnline + "分钟";
item.proportionalSharing = (item.proportionalSharing * 100) + "%";
});
let returnData = data.data;
this.tableData = returnData;
}
})
},
// 修改弹框
amend(index, rows) {
this.dialogFormVisible = true;
this.form.id = rows.id;
this.form.type = rows.type
this.form.min = rows.min;
this.form.value = rows.value;
this.form.max = rows.max;
this.form.createAt = rows.createAt;
this.form.conditionFrom = rows.conditionFrom;
if (this.form.type == 330) {
this.address = rows.value
this.select()
} else if(this.form.type == 443 || this.form.type == 444 || this.form.type == 445 || this.form.type == 446) {
this.form.value2 = [ this.getSplitOtherValue(rows.value,0), this.getSplitOtherValue(rows.value,1) ];
2024-06-05 19:13:04 +08:00
}
},
openDividedDialog(index, rows) {
console.log(this.tableData, "dwdwdw00");
this.dividedDialogFormVisible = true;
this.dividedDetailsForm.id = rows.id;
this.dividedDetailsForm.grade = rows.grade;
this.dividedDetailsForm.outstandingAchievement = rows.outstandingAchievement;
this.dividedDetailsForm.clockRate = (rows.clockRate.substring(0, rows.clockRate.length - 1)) / 100;
this.dividedDetailsForm.durationOnline = rows.durationOnline.substring(0, rows.durationOnline.length - 2);
this.dividedDetailsForm.integral = rows.integral;
this.dividedDetailsForm.proportionalSharing = (rows.proportionalSharing.substring(0, rows.proportionalSharing.length - 1)) / 100;
this.dividedDetailsForm.depositRate = (rows.depositRate.substring(0, rows.depositRate.length - 1)) / 100;
},
// 修改
amendNoticeTo() {
if (this.form.type == 330) {
this.form.value = this.address
} else if (this.form.conditionFrom == "xitong" && this.form.type == 433) {
2024-06-05 19:13:04 +08:00
if (this.form.value) window.localStorage.setItem("ringOrderId", this.form.value);
} else if (this.form.conditionFrom == "xitong" && this.form.type == 100000) {
2024-06-05 19:13:04 +08:00
let regRule = new RegExp("^[0-9]*[1-9][0-9]*$");
if (!regRule.test(this.form.value)) {
this.form.value = "10";
this.$message.error('当前值只能输入正整数');
return;
}
} else if(this.form.type == 443) {
//判断不能为空
if(!this.form.value || this.form.value == ','){
this.$message.error('请选择日期');
return;
}
2024-06-05 19:13:04 +08:00
}
console.log(this.form);
this.$http({
url: this.$http.adornUrl('common/update'),
method: 'post',
data: this.$http.adornData({
'id': this.form.id,
'type': this.form.type,
'value': this.form.value,
'min': this.form.min,
'max': this.form.max,
'createAt': this.form.createAt,
'conditionFrom': this.form.conditionFrom
})
}).then(({
data
}) => {
if (data && data.code === 0) {
this.dialogFormVisible = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.dataSelect()
if (this.form.type == 330) {
this.amendNoticeToJw()
}
}
})
} else {
this.$message.error(data.msg)
}
})
},
//分成比例编辑提交
dividedDetailsSubmit() {
let _this = this;
let paramsObj = {
id: this.dividedDetailsForm.id,
grade: this.dividedDetailsForm.grade,
outstandingAchievement: this.dividedDetailsForm.outstandingAchievement,
clockRate: this.dividedDetailsForm.clockRate,
durationOnline: this.dividedDetailsForm.durationOnline,
integral: this.dividedDetailsForm.integral,
proportionalSharing: this.dividedDetailsForm.proportionalSharing,
depositRate: this.dividedDetailsForm.depositRate,
}
// 编辑提交时提取value中的数值
// paramsObj.clockRate = Number(paramsObj.clockRate.substring(0, paramsObj.clockRate.length - 1));
// paramsObj.durationOnline = Number(paramsObj.durationOnline.substring(0, paramsObj.durationOnline.length - 2));
// paramsObj.proportionalSharing = Number(paramsObj.proportionalSharing.substring(0, paramsObj.proportionalSharing.length - 1));
this.$http({
url: this.$http.adornUrl('common/fcmx/upd'),
method: 'POST',
data: this.$http.adornData(paramsObj)
}).then(({
data
}) => {
if (data && data.code === 0) {
this.dividedDialogFormVisible = false;
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDividedDetailsList();
for (let item in this.dividedDetailsForm) {
this.dividedDetailsForm[item] = "";
}
// if (this.form.type == 330) {
// this.amendNoticeToJw()
// }
}
})
} else {
this.$message.error(data.msg)
}
})
},
// 修改经纬度
amendNoticeToJw() {
var values = this.latitude + ',' + this.longitude
this.$http({
url: this.$http.adornUrl('common/update'),
method: 'post',
data: this.$http.adornData({
'id': 333,
'type': 333,
'value': values,
'min': '商家经纬度',
'max': 'null',
'createAt': this.form.createAt,
'conditionFrom': 'shop'
})
}).then(({
data
}) => {
this.dataSelect()
})
},
// 修改首页
amendWhether(index, rows) {
this.dialogFormVisible1 = true;
this.form2.id = rows.id;
this.form2.type = rows.type
this.form2.min = rows.min;
this.form2.value = rows.value;
this.form2.max = rows.max;
this.form2.createAt = rows.createAt;
this.form2.conditionFrom = rows.conditionFrom
},
WhetherNoticeTo() {
this.$http({
url: this.$http.adornUrl('common/update'),
method: 'post',
data: this.$http.adornData({
'id': this.form2.id,
'type': this.form2.type,
'value': this.form2.value,
'min': this.form2.min,
'max': this.form2.max,
'createAt': this.form2.createAt,
'conditionFrom': this.form2.conditionFrom
})
}).then(({
data
}) => {
if (data && data.code === 0) {
this.dialogFormVisible1 = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.dataSelect()
}
})
} else {
this.$message.error(data.msg)
}
})
},
// 获取数据列表
dataSelect() {
this.tableDataLoading = true
console.log(this.condition, "12312hhh");
this.$http({
url: this.$http.adornUrl(`common/type/condition/${this.condition}`),
method: 'get',
params: this.$http.adornParams({})
}).then(({
data
}) => {
if (data && data.code === 0) {
this.tableDataLoading = false
let returnData = data.data;
//将【开关配置】中id为394"是否开启打车费扣提成"隐藏
if (this.condition == "kaiguan") {
returnData.splice(data.data.findIndex((item) => item.id == 394), 1);
this.tableData = returnData;
return;
} if (this.condition == 'xitong') {
let hasItemStaus = returnData.some((item) => item.id == 433);
if (hasItemStaus) {
let ringOrderArr = returnData.filter((item) => item.id == 433);
if (ringOrderArr) window.localStorage.setItem("ringOrderId", ringOrderArr[0].value);
}
console.log(returnData);
}
this.tableData = returnData
}
})
},
handleSuccess(file) {
console.log(file)
this.form.value = file.data.url;
this.sec = file.data.sec
console.log(file.data, this.form.value)
this.tableDataLoading6 = false
},
handlePreview(file) {
this.tableDataLoading6 = 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;
},
//定位获得当前位置信息
getMyLocation() {
var geolocation = new qq.maps.Geolocation("WYJBZ-BOVK2-QZSU2-CJHY2-7BFHE-JEFNP", "来点小收入");
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=WYJBZ-BOVK2-QZSU2-CJHY2-7BFHE-JEFNP&get_poi=1&output=jsonp', {
myCustomUrlParam: 'veryNice'
}).then(response => {
console.log('response', response.result.address, response.result.formatted_addresses.recommend)
that.address = response.result.address + '(' + response.result.formatted_addresses.recommend + ')'
}).catch(error => {
// handle error
}).then(() => {
// always executed
});
if (markersArray) {
for (let i in markersArray) {
markersArray[i].setMap(null);
}
}
var marker = new qq.maps.Marker({
map: map,
position: 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 = this.province+ this.city+this.district+this.address
var addr = this.address
let that = this
jsonp('https://apis.map.qq.com/ws/geocoder/v1/?address==' + addr +
'&key=WYJBZ-BOVK2-QZSU2-CJHY2-7BFHE-JEFNP&get_poi=1&output=jsonp', {
myCustomUrlParam: 'veryNice'
}).then(response => {
// handle success
console.log('response', response)
that.longitude = response.result.location.lng; // 经度
that.latitude = response.result.location.lat; // 纬度
// that.address = response.result.title
that.setMap()
}).catch(error => {
// handle error
}).then(() => {
// always executed
});
},
},
mounted() {
this.dataSelect()
}
}
</script>
<style scoped="scoped">
.eit {
height: 120px;
}
</style>