2024年6月15日 新增接口,完善技师物料包维护

This commit is contained in:
bai 2024-06-15 20:59:35 +08:00
parent a2b6e9f2d8
commit 6b33fcafd1
2 changed files with 379 additions and 33 deletions

View File

@ -55,7 +55,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(tableData, 'userRate')">修改</el-button>
</span>
</td>
<th>邀请师傅佣金比例</th>
<td>{{ tableData.shopRate ? `${tableData.shopRate}` : '0' }}
@ -212,7 +211,6 @@
<img v-else :src="artificer.artificerImg" width="80" height="80"
@click="imgShow(artificer.artificerImg)" />
</td>
</td>
</tr>
<tr>
<th>证书</th>
@ -243,12 +241,10 @@
{{ artificer.content }}
</div>
</td>
</td>
<!-- <th>从业时长</th>
<td >
{{ artificer.workingTime }}
</td> -->
</td>
<th>师傅销量</th>
<td>
{{ artificer.ordersCount ? artificer.ordersCount : 0 }}
@ -360,7 +356,6 @@
width="80" height="80">
<img v-else :src="consortia.logo" width="80" height="80" />
</td>
</td>
</tr>
<tr>
<th>资质证书</th>
@ -392,8 +387,6 @@
{{ consortia.consortiaContent }}
</div>
</td>
</td>
</td>
<th>身份证姓名</th>
<td>
{{ consortia.identityName }}
@ -581,7 +574,7 @@
<el-table-column prop="userName" label="师傅昵称" width="150">
<template slot-scope="scope">
 <span>{{ scope.row.artificerName ? scope.row.artificerName : '未绑定' }}</span>
<span>{{ scope.row.artificerName ? scope.row.artificerName : '未绑定' }}</span>
</template>
</el-table-column>
<el-table-column prop="artificerImg" label="师傅头像" width="150">
@ -773,7 +766,7 @@
<el-table-column prop="userName" label="下单用户昵称">
<template slot-scope="scope">
 <span>{{ scope.row.userName ? scope.row.userName : '未绑定' }}</span>
<span>{{ scope.row.userName ? scope.row.userName : '未绑定' }}</span>
</template>
</el-table-column>
<el-table-column prop="artificerImg" label="师傅头像">
@ -847,7 +840,7 @@
<el-table-column prop="massageImg" label="项目图片">
<template slot-scope="scope">
  <img v-if="scope.row.massageImg && scope.row.massageImg != ''" :src="scope.row.massageImg"
<img v-if="scope.row.massageImg && scope.row.massageImg != ''" :src="scope.row.massageImg"
width="40" height="40" />
<span v-else>暂无图片</span>
</template>
@ -934,8 +927,7 @@
<div class="box_num">
<div class="box_color">用户评价数</div>
<div class="text_color">
<span>{{ guanzhuData.countTakingByUserId ? guanzhuData.countTakingByUserId :
0 }}</span>
<span>{{ guanzhuData.countTakingByUserId ? guanzhuData.countTakingByUserId : 0 }}</span>
</div>
</div>
</div>
@ -985,8 +977,7 @@
<div class="box_num">
<div class="box_color">待评价订单</div>
<div class="text_color">
<span>{{ guanzhuData.countOrderAppraise ? guanzhuData.countOrderAppraise :
0 }}</span>
<span>{{ guanzhuData.countOrderAppraise ? guanzhuData.countOrderAppraise : 0 }}</span>
</div>
</div>
</div>
@ -1227,8 +1218,7 @@
<el-table-column prop="artificerName" label="用户昵称" width="150">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;">{{ scope.row.artificerName ?
scope.row.artificerName : '未绑定' }}</span>
<span style="color: #4f9dec;cursor: pointer;">{{ scope.row.artificerName ? scope.row.artificerName : '未绑定' }}</span>
</template>
</el-table-column>
@ -1574,6 +1564,129 @@
<el-button type="primary" @click="StairNoticeTo5()"> </el-button>
</div>
</el-dialog>
<el-tab-pane label="我的物料" name="myArtificerSelfGoods" v-if="tableData.isAuthentication == 2">
<el-button size="mini" type="primary" icon="plus" @click="myArtificerSelfGoods.addPage.open()">新增</el-button>
<el-button size="mini" type="primary" @click="myArtificerSelfGoods.load">刷新</el-button>
<el-table v-loading="myArtificerSelfGoods.tableDataLoading" :data="myArtificerSelfGoods.dataSoure">
<el-table-column prop="id" label="编号" width="80" fixed="left"/>
<el-table-column prop="selfGoodsTitle" label="标题"/>
<el-table-column prop="artificerId" label="物料编号" width="200"/>
<el-table-column prop="num" label="当前库存量"/>
<el-table-column prop="lastTimeNum" label="上一次库存量"/>
<el-table-column prop="lastTimeChangeNum" label="上一次变更量"/>
<el-table-column prop="createTime" label="创建时间" width="160"/>
<el-table-column prop="createAt" label="创建人" width="160"/>
<el-table-column prop="updateTime" label="修改时间" width="160"/>
<el-table-column prop="updateAt" label="修改人" width="160"/>
<el-table-column prop="operate" label="操作" width="160">
<template slot-scope="scope">
<el-button style="margin:5px;" size="mini" type="primary" icon="document" @click="myArtificerSelfGoods.editPage.open(scope.row)">修改库存</el-button>
<el-button style="margin:5px;" size="mini" type="primary" icon="document" @click="myArtificerSelfGoods.logPage.open(scope.row)">修改日志</el-button>
</template>
</el-table-column>
</el-table>
<div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="myArtificerSelfGoods.pagination.handleSizeChange" @current-change="myArtificerSelfGoods.pagination.handleCurrentChange"
:page-sizes="[10, 20, 30, 40]" :page-size="myArtificerSelfGoods.pagination.limit" :current-page="myArtificerSelfGoods.pagination.page"
layout="total,sizes, prev, pager, next" :total="myArtificerSelfGoods.pagination.total">
</el-pagination>
</div>
<!-- 修改我的物料弹窗-新增 -->
<el-dialog title="新增库存" :visible.sync="myArtificerSelfGoods.addPage.dialogFormVisible" center width="70%">
<el-table v-loading="myArtificerSelfGoods.addPage.tableDataLoading" :data="myArtificerSelfGoods.addPage.dataSoure" @selection-change="myArtificerSelfGoods.addPage.handleSelectionChange">
<el-table-column type="selection" width="55"/>
<el-table-column fixed prop="id" label="编号" width="80"/>
<el-table-column fixed prop="coverImg" label="商品图片">
<template slot-scope="scope">
<img :src="scope.row.coverImg" alt="" width="60" height="60">
</template>
</el-table-column>
<el-table-column prop="type" label="商品类型">
<template slot-scope="scope">
<span v-if="scope.row.type == null">暂无分类</span>
<span v-else>{{ scope.row.type.name }}</span>
</template>
</el-table-column>
<el-table-column prop="title" label="商品标题" width="200"/>
<el-table-column prop="originalPrice" label="商品原价">
<template slot-scope="scope">
<span style="color: #f56c6c;">{{ scope.row.originalPrice | numFilter }}</span>
</template>
</el-table-column>
<el-table-column prop="price" label="商品价格">
<template slot-scope="scope">
<span style="color: #f56c6c;">{{ scope.row.price | numFilter }}</span>
</template>
</el-table-column>
<el-table-column prop="sales" label="商品销量"/>
<el-table-column prop="buyReason" label="必买理由" width="200"/>
<el-table-column prop="operate" label="入库量/出库量" width="260">
<template slot-scope="scope">
<el-input-number v-model="scope.row.changeNum" :precision="0" :step="1" placeholder="请输入库量/出库量"/>
</template>
</el-table-column>
<el-table-column prop="operate" label="备注" width="260">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" placeholder="请输入备注"/>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="myArtificerSelfGoods.addPage.close()"> </el-button>
<el-button type="primary" @click="myArtificerSelfGoods.addPage.ok()"> </el-button>
</div>
</el-dialog>
<!-- 修改我的物料弹窗-修改 -->
<el-dialog title="修改库存" :visible.sync="myArtificerSelfGoods.editPage.dialogFormVisible" center>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">入库量/出库量</span>
<!-- <el-input-number style="width:50%;" v-model="myArtificerSelfGoods.editPage.model.changeNum" placeholder="请输入库量/出库量"/> -->
<el-input-number style="width:50%;" v-model="myArtificerSelfGoods.editPage.model.changeNum" :precision="0" :step="1" placeholder="请输入库量/出库量"/>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">备注</span>
<!-- <el-input-number style="width:50%;" v-model="myArtificerSelfGoods.editPage.model.changeNum" placeholder="请输入库量/出库量"/> -->
<el-input style="width:50%;" v-model="myArtificerSelfGoods.editPage.model.remark" placeholder="备注"/>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="myArtificerSelfGoods.editPage.close()"> </el-button>
<el-button type="primary" @click="myArtificerSelfGoods.editPage.ok()"> </el-button>
</div>
</el-dialog>
<el-dialog title="库存进出日志" :visible.sync="myArtificerSelfGoods.logPage.dialogFormVisible" center width="70%">
<el-table v-loading="myArtificerSelfGoods.logPage.tableDataLoading" :data="myArtificerSelfGoods.logPage.dataSoure" @selection-change="myArtificerSelfGoods.logPage.handleSelectionChange">
<el-table-column prop="id" label="编号" width="80" fixed="left"/>
<el-table-column prop="selfGoodsTitle" label="标题"/>
<el-table-column prop="artificerId" label="物料编号" width="200"/>
<el-table-column prop="operationType" label="操作类型">
<template slot-scope="scope">
<span v-if="scope.row.operationType == 1" class="people">入库</span>
<span v-if="scope.row.operationType == 2" class="people">出库</span>
<span v-if="scope.row.operationType == 3" class="people">修改库</span>
</template>
</el-table-column>
<el-table-column prop="afterTheChangeNum" label="变更后库存量"/>
<el-table-column prop="beforeTheChangeNum" label="变更前库存量"/>
<el-table-column prop="changeNum" label="本次变更量"/>
<el-table-column prop="createTime" label="创建时间" width="160"/>
<el-table-column prop="createAt" label="创建人" width="160"/>
<el-table-column prop="remark" label="备注" width="160"/>
</el-table>
<div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="myArtificerSelfGoods.logPage.pagination.handleSizeChange" @current-change="myArtificerSelfGoods.logPage.pagination.handleCurrentChange"
:page-sizes="[10, 20, 30, 40]" :page-size="myArtificerSelfGoods.logPage.pagination.limit" :current-page="myArtificerSelfGoods.logPage.pagination.page"
layout="total,sizes, prev, pager, next" :total="myArtificerSelfGoods.logPage.pagination.total">
</el-pagination>
</div>
</el-dialog>
</el-tab-pane>
</el-tabs>
<!-- 加钟记录 -->
<el-dialog title="加钟记录" :visible.sync="dialogFormVisibleJz" center>
@ -1853,9 +1966,7 @@
<el-table-column prop="userName" label="昵称" width="120">
<template slot-scope="scope">
<span style="color: #f56c6c;" @click="updates(scope.row)">{{ scope.row.userName ?
scope.row.userName
: '未设置' }}</span>
<span style="color: #f56c6c;" @click="updates(scope.row)">{{ scope.row.userName ? scope.row.userName : '未设置' }}</span>
</template>
</el-table-column>
<el-table-column label="图像">
@ -2412,8 +2523,254 @@ import { serverPaths } from '@/utils/enumData'
},
],
historyArtificerName: "",
//
myArtificerSelfGoods: {
init: () => {
let { queryParams, load } = this.myArtificerSelfGoods;
queryParams = {};
load();
},
load: () => {
let { $route, myArtificerSelfGoods, } = this;
let { artificerId } = $route.query;
let { queryParams, pagination } = myArtificerSelfGoods;
myArtificerSelfGoods.tableDataLoading = true;
let params = {
artificerId,
page: pagination.page,
limit: pagination.limit,
...queryParams,
}
//
this.$http({ url: this.$http.adornUrl("blArtificerSelfGoods/list"), method: "get", params: this.$http.adornParams(params),}).then(({ data }) => {
let pageObj = ((data || {}).data || {});
myArtificerSelfGoods.dataSoure = pageObj.records || [];
myArtificerSelfGoods.tableDataLoading = false;
pagination.page = pageObj.current || 1;
pagination.total = pageObj.total || 0;
});
},
tableDataLoading: false,
queryParams: {},
dataSoure: [],
pagination: {
page: 1,
limit: 10,
total: 0,
handleSizeChange: (v) => {
this.myArtificerSelfGoods.pagination.limit = v;
this.myArtificerSelfGoods.load();
},
handleCurrentChange: (v) => {
this.myArtificerSelfGoods.pagination.page = v;
this.myArtificerSelfGoods.load();
},
},
addPage: {
loading: false,
dialogFormVisible: false,
multipleSelection: [],
dataSoure: [],
model: { id: null, changeNum: null, remark: null},
open: () => {
//
let { myArtificerSelfGoods } = this;
let { addPage, model } = myArtificerSelfGoods;
addPage.dialogFormVisible = true;
addPage.load();
},
close: () => {
let { myArtificerSelfGoods } = this;
let { addPage } = myArtificerSelfGoods;
addPage.dialogFormVisible = false;
},
ok: () => {
let { myArtificerSelfGoods } = this;
let { artificerId } = this.$route.query;
let { addPage } = myArtificerSelfGoods;
let { model, multipleSelection } = addPage;
let isError = false;
let saveList = multipleSelection.map(x => {
if(!x.changeNum || Number(x.changeNum) == 0){
isError = true;
}
return {
artificerId,
selfGoodsId: x.id,
changeNum: x.changeNum,
remark: x.remark,
goods: x,
};
});
if(isError){
this.$message({ message: '请填写非0数字', type: 'warning' });
return;
}
let params = saveList
console.log(`🚀 ---------------------------🚀`);
console.log(`🚀 ~ data ~ params:`, params);
console.log(`🚀 ---------------------------🚀`);
this.$http({ url: this.$http.adornUrl("blArtificerSelfGoods/addList"), method: "post", data: this.$http.adornData(params),}).then(({ data }) => {
if(data.code == 0){
this.$message({ message: '操作成功', type: 'success', duration: 1500 });
addPage.close();
myArtificerSelfGoods.load();
} else {
this.$message({ message: '操作失败:' + data.msg, type: 'error', duration: 1500 });
}
});
},
load: () => {
let { myArtificerSelfGoods } = this;
let { addPage } = myArtificerSelfGoods;
addPage.loading = true;
let params = {
'page': 0,
'size': -1,
// 'title': '',
'pTypeId': '56',
'status': 1
}
this.$http({ url: this.$http.adornUrl("goods/list"), method: "get", params: this.$http.adornParams(params),}).then(({ data }) => {
addPage.loading = false;
let returnData = data.data;
addPage.dataSoure = returnData.content;
// this.totalnum = returnData.totalElements
});
},
handleSelectionChange: (rows) => {
let { myArtificerSelfGoods } = this;
let { addPage } = myArtificerSelfGoods;
addPage.multipleSelection = rows;
}
},
editPage: {
dialogFormVisible: false,
loading: false,
model: { id: null, changeNum: null, remark: null},
open: (record) => {
//
let { myArtificerSelfGoods } = this;
let { editPage } = myArtificerSelfGoods;
editPage.dialogFormVisible = true;
editPage.model = Object.assign({}, record);
editPage.load();
},
close: () => {
let { myArtificerSelfGoods } = this;
let { editPage } = myArtificerSelfGoods;
editPage.dialogFormVisible = false;
},
ok: () => {
let { myArtificerSelfGoods } = this;
let { editPage } = myArtificerSelfGoods;
let { model } = editPage;
//
if(!model.changeNum || Number(model.changeNum) == 0){
this.$message({ message: '请填写非0数字', type: 'warning' });
return;
}
let params = { ...model };
this.$http({ url: this.$http.adornUrl("blArtificerSelfGoods/update"), method: "post", data: this.$http.adornData(params),}).then(({ data }) => {
if(data.code == 0){
this.$message({ message: '操作成功', type: 'success', duration: 1500 });
editPage.close();
myArtificerSelfGoods.load();
} else {
this.$message({ message: '操作失败:' + data.msg, type: 'error', duration: 1500 });
}
});
},
load: () => {
let { myArtificerSelfGoods } = this;
let { editPage } = myArtificerSelfGoods;
let { model } = editPage;
editPage.loading = true;
this.$http({ url: this.$http.adornUrl("blArtificerSelfGoods/info/"+model.id), method: "get",}).then(({ data }) => {
editPage.loading = false;
editPage.model = data.data;
});
}
},
logPage: {
dialogFormVisible: false,
loading: false,
model: { id: null, changeNum: null, remark: null},
open: (record) => {
//
let { myArtificerSelfGoods } = this;
let { logPage } = myArtificerSelfGoods;
logPage.dialogFormVisible = true;
logPage.model = Object.assign({}, record);
logPage.load();
},
load: () => {
let { $route, myArtificerSelfGoods, } = this;
let { artificerId } = $route.query;
let { logPage } = myArtificerSelfGoods;
let { model, pagination } = logPage;
logPage.tableDataLoading = true;
let params = {
artificerId,
selfGoodsId: model.selfGoodsId,
page: pagination.page,
limit: pagination.limit,
}
//
this.$http({ url: this.$http.adornUrl("blArtificerSelfGoodsEntryExitRecords/list"), method: "get", params: this.$http.adornParams(params),}).then(({ data }) => {
let pageObj = ((data || {}).data || {});
logPage.dataSoure = pageObj.records || [];
logPage.tableDataLoading = false;
pagination.page = pageObj.current || 1;
pagination.total = pageObj.total || 0;
});
},
tableDataLoading: false,
queryParams: {},
dataSoure: [],
pagination: {
page: 1,
limit: 10,
total: 0,
handleSizeChange: (v) => {
this.myArtificerSelfGoods.logPage.pagination.limit = v;
this.myArtificerSelfGoods.logPage.load();
},
handleCurrentChange: (v) => {
this.myArtificerSelfGoods.logPage.pagination.page = v;
this.myArtificerSelfGoods.logPage.load();
},
}
}
}
};
},
filters: {
numFilter(value) {
let realVal = ''
if (!isNaN(value) && value !== '') {
//
realVal = parseFloat(value).toFixed(2)
} else {
realVal = '--'
}
return realVal
}
},
methods: {
//
imgShow(e) {
@ -2615,6 +2972,9 @@ import { serverPaths } from '@/utils/enumData'
if (tab._props.label == "商家详情") {
this.shopsSelect();
}
if (tab._props.label == "我的物料") {
this.myArtificerSelfGoods.init();
}
},
handleSizeChangeTx(val) {
this.limit = val;

View File

@ -107,7 +107,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;" @click="xiugai(scope.row,'userRate')">
修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="shopRate" label="邀请师傅佣金比例" width="150">
@ -116,7 +115,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(scope.row,'shopRate')">修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="platform" label="渠道来源"></el-table-column>
@ -272,7 +270,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;" @click="xiugai(scope.row,'userRate')">
修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="shopRate" label="邀请师傅佣金比例" width="150">
@ -281,7 +278,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(scope.row,'shopRate')">修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="platform" label="渠道来源"></el-table-column>
@ -431,7 +427,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;" @click="xiugai(scope.row,'userRate')">
修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="shopRate" label="邀请师傅佣金比例" width="150">
@ -440,7 +435,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(scope.row,'shopRate')">修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="platform" label="渠道来源"></el-table-column>
@ -588,7 +582,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;" @click="xiugai(scope.row,'userRate')">
修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="shopRate" label="邀请师傅佣金比例" width="150">
@ -597,7 +590,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(scope.row,'shopRate')">修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="platform" label="渠道来源"></el-table-column>
@ -745,7 +737,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;" @click="xiugai(scope.row,'userRate')">
修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="shopRate" label="邀请师傅佣金比例" width="150">
@ -754,7 +745,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(scope.row,'shopRate')">修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="platform" label="渠道来源"></el-table-column>
@ -902,7 +892,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;" @click="xiugai(scope.row,'userRate')">
修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="shopRate" label="邀请师傅佣金比例" width="150">
@ -911,7 +900,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(scope.row,'shopRate')">修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="platform" label="渠道来源"></el-table-column>
@ -1060,7 +1048,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;" @click="xiugai(scope.row,'userRate')">
修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="shopRate" label="邀请师傅佣金比例" width="150">
@ -1069,7 +1056,6 @@
<el-button size="mini" :disabled="!isAuth('userList:updatebl')"
style="color: #4f9dec;background: #fff;border: none;"
@click="xiugai(scope.row,'shopRate')">修改</el-button>
</span>
</template>
</el-table-column>
<el-table-column prop="platform" label="渠道来源"></el-table-column>