Compare commits

...

7 Commits

Author SHA1 Message Date
xiaofajia
278847d927 财务结算订单之后工单不可在编辑,修改 2024-12-04 16:39:36 +08:00
xiaofajia
a9d6c01cbb 维修工查看配件申请单 2024-12-04 16:20:19 +08:00
xiaofajia
af4e392e0b 仓库查看入库单 2024-12-04 16:14:11 +08:00
xiaofajia
e8b7e1620c 维修配件 改为 更换配件清单
维修项目 改为 维修工时项目
2024-12-04 11:31:45 +08:00
xiaofajia
2daf0c8745 维修配件 改为 更换配件清单
维修项目 改为 维修工时项目
2024-12-04 11:27:28 +08:00
xiaofajia
0d6bca2256 客户信息 添加 经办人信息(姓名、电话) 2024-12-04 11:25:46 +08:00
xiaofajia
0b1acbe7b1 岗位相关的从前端页面隐藏掉 2024-12-04 11:08:07 +08:00
9 changed files with 146 additions and 35 deletions

View File

@ -109,6 +109,9 @@
<el-button size="mini" type="text" icon="el-icon-view" @click="handleShow(scope.row)"
>查看
</el-button>
<el-button size="mini" type="text" icon="el-icon-view" @click="handleShowIn(scope.row)"
>查看入库单
</el-button>
<el-button @click="handleInWares(scope.row)" v-if="scope.row.soStatus === '02'" size="mini" type="text"
icon="el-icon-edit-outline"
>入库
@ -230,6 +233,40 @@
<el-button @click="dialogVisible = false">取消</el-button>
</div>
</el-dialog>
<el-dialog title="入库单" :visible.sync="inDialog" width="80%" v-dialogDrag append-to-body>
<el-table :data="inData" v-loading="inLoading2" :row-key="getRowKey" :expand-row-keys="expands" @expand-change="handleExpand" :stripe="true" :show-overflow-tooltip="true">
<el-table-column type="expand">
<template slot-scope="scope">
<el-table :data="inSoiList" v-loading="inLoading3" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="序号" align="center" width="55">
<template scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="名称" align="center" prop="repairWares.name" />
<el-table-column label="单价" align="center" prop="goodsPrice" />
<el-table-column label="入库数量" align="center" prop="goodsCount" />
</el-table>
</template>
</el-table-column>
<el-table-column label="序号" align="center" width="55">
<template scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="单号" align="center" prop="soNo" />
<el-table-column label="入库时间" align="center" prop="createTime">
<template slot-scope="scope">
{{parseTime(scope.row.createTime)}}
</template>
</el-table-column>
<el-table-column label="入库人" align="center" prop="userName" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="inDialog = false">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
@ -245,6 +282,8 @@ import {getRepairSoiByIds, getMapBySoIdAndQuery} from "@/api/repair/stockOperate
import {createUniqueCodeByHead} from "@/utils/createUniqueCode";
import WarehouseChoose from "@/views/repair/Components/WarehouseChoose.vue";
import {getBaseTypeList} from "@/api/base/type";
import {getUserProfile} from "@/api/system/user";
import {parseTime} from "../../../../utils/ruoyi";
export default {
name: "SoIndex",
@ -342,12 +381,61 @@ export default {
isRefresh: false,
//
exportLoading: false,
inQueryParams:{
pageNo: 1,
pageSize: 10,
userId: null,
mainId: null,
},
inDialog: false,
inData: [],
inTotal: 0,
inLoading2: false,
expands: [],
getRowKey:(row) => {
return row.id
},
inSoiList: [],
inLoading3: false
}
},
mounted() {
this.pageSo();
},
methods: {
parseTime,
async handleExpand(row, expandedRows){
let that = this
if (expandedRows.length){
that.expands = []
if (row){
that.expands.push(row.id)
try {
that.inLoading3 = true
const resSo = await getRepairSoById(row.id)
const ids = resSo.data.goodsList.map(item => item.id)
const resSoi = await getRepairSoiByIds(ids)
this.inSoiList = resSoi.data
that.inLoading3 = false
}catch{}
}
}else {
that.expands = []
}
},
async handleShowIn(row){
try {
this.inDialog = true
this.inLoading2 = true
this.inQueryParams.mainId = row.id
const user = await getUserProfile();
this.inQueryParams.userId = user.data.id
const res = await getRepairSoPage(this.inQueryParams)
this.inData = res.data.records
this.inTotal = res.data.total
this.inLoading2 = false
}catch{}
},
setSelectedRows() {
this.$nextTick(() => {
Object.keys(this.$refs).forEach(key => {

View File

@ -230,11 +230,11 @@ export default {
getLabelName() {
switch (this.itemType) {
case "project":
return "维修项目";
return "名称";
case "part":
return "维修配件";
return "名称";
case "other":
return "附加费用";
return "名称";
default:
return '';
}

View File

@ -148,11 +148,11 @@ export default {
getLabelName() {
switch (this.listType) {
case "project":
return "维修项目";
return "名称";
case "ware":
return "维修配件";
return "名称";
case "other":
return "附加费用";
return "名称";
default:
return '';
}

View File

@ -53,20 +53,20 @@
</el-button>
<!-- 维修工才有 -->
<el-button
v-if="(scope.row.ticketsWorkStatus === '01' && userRole === 'repair_staff') && nowUser.id === scope.row.nowRepairId"
v-if="scope.row.isFinish !== '1' && (scope.row.ticketsWorkStatus === '01' && userRole === 'repair_staff') && nowUser.id === scope.row.nowRepairId"
size="mini" type="text" icon="el-icon-check" @click="handleTake(scope.row)">
接单
</el-button>
<!-- 服务顾问才有 -->
<el-button v-if="userRole === 'service_advisor' && scope.row.ticketsWorkStatus === '01'" size="mini"
<el-button v-if=" scope.row.isFinish !== '1' && userRole === 'service_advisor' && scope.row.ticketsWorkStatus === '01'" size="mini"
type="text" icon="el-icon-check" @click="handleNotify(scope.row)">
通知施工
</el-button>
<!-- 服务顾问总检班组长才有 -->
<el-button v-if="(userRole !== 'repair_staff' && scope.row.ticketsWorkStatus !== '01') || (userRole === 'repair_staff' && leader && nowUser.id === scope.row.nowRepairId && scope.row.ticketsWorkStatus !== '04')" @click="handleReTake(scope.row)" size="mini" type="text" icon="el-icon-refresh"
<el-button v-if="scope.row.isFinish !== '1' && (userRole !== 'repair_staff' && scope.row.ticketsWorkStatus !== '01') || (userRole === 'repair_staff' && leader && nowUser.id === scope.row.nowRepairId && scope.row.ticketsWorkStatus !== '04')" @click="handleReTake(scope.row)" size="mini" type="text" icon="el-icon-refresh"
>{{ userRole === 'general_inspection' ? "内返派工" : "修改派工" }}
</el-button>
<el-dropdown
<el-dropdown v-if="scope.row.isFinish !== '1'"
@command="(command) => handleCommand(command, scope.$index, scope.row)">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown">
@ -115,7 +115,7 @@
<el-button size="mini" type="text" icon="el-icon-view" @click="handleShow(scope.row)"
>查看
</el-button>
<el-button v-hasPermi="['repair:tkm:edit']" size="mini" type="text" icon="el-icon-setting" @click="handleEditTicket(scope.row)">
<el-button v-if="scope.row.isFinish !== '1'" v-hasPermi="['repair:tkm:edit']" size="mini" type="text" icon="el-icon-setting" @click="handleEditTicket(scope.row)">
编辑工单
</el-button>
</template>

View File

@ -123,9 +123,9 @@
@click="handlePrint(scope.row)"
>下载打印
</el-button>
<el-button size="mini" v-hasPermi="['repair:tk:edit']" type="text" icon="el-icon-setting" @click="handleEditTicket(scope.row)">
编辑工单
</el-button>
<!-- <el-button size="mini" v-hasPermi="['repair:tk:edit']" type="text" icon="el-icon-setting" @click="handleEditTicket(scope.row)">-->
<!-- 编辑工单-->
<!-- </el-button>-->
<el-button size="mini" v-hasPermi="['repair:tk:remove']" type="text" icon="el-icon-remove" @click="handleRemove(scope.row)">
删除
</el-button>

View File

@ -139,6 +139,21 @@
</template>
<StaffChoose v-model="selectStaff" :is-get="'true'"/>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
经办人姓名
</template>
<el-input v-model="formData.handleName" />
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
经办人电话
</template>
<el-input v-model="formData.handleMobile" />
</el-descriptions-item>
<el-descriptions-item>
<!-- 占位 -->
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
接车图片
@ -225,10 +240,10 @@
<el-button size="small" v-if="formData.ticketType === '02'" @click="formData.ticketType = '01'">B单</el-button>
</el-col>
</el-row>
<span style="font-size: 16px">维修项目</span>
<span style="font-size: 16px">维修工时项目</span>
<TicketItem item-type="project" :in-list-data="projectList" @tableData="projectData" ref="projectTable"
:coupon-list="couponList" @changeCoupon="changeCoupon"/>
<span style="font-size: 16px; margin:1rem 0" v-if="createTicketType">维修配件</span>
<span style="font-size: 16px; margin:1rem 0" v-if="createTicketType">更换配件清单</span>
<TicketItem v-if="createTicketType" :in-list-data="partList" item-type="part" @tableData="partData"
:coupon-list="couponList" @changeCoupon="changeCoupon"
ref="partTable"/>
@ -337,6 +352,8 @@ export default {
watch: {
selectUser(val) {
if (val) {
this.formData.handleName = val.cusName
this.formData.handleMobile = val.phoneNumber
if (!val.isRes) {
this.selectCar = {}
this.bookingList = []
@ -349,6 +366,8 @@ export default {
}
}
} else {
this.formData.handleName = null
this.formData.handleMobile = null
this.selectCar = {}
this.bookingList = []
this.couponList = []
@ -407,7 +426,9 @@ export default {
rescueMoney: 0,
threePackMoney: 0,
confirmFaultMoney: 0,
image: null
image: null,
handleName: null,
handleMobile: null,
},
selectUser: {},
selectCar: {},
@ -556,7 +577,9 @@ export default {
rescueMoney: 0,
threePackMoney: 0,
confirmFaultMoney: 0,
image: null
image: null,
handleName: null,
handleMobile: null,
}
this.selectUser = {}
this.selectCar = {}

View File

@ -10,7 +10,7 @@
<el-tab-pane label="待处理工单" name="unInspection" v-if="userRole !== 'repair_staff'">
<TicketFinishManager :user-role="userRole" />
</el-tab-pane>
<el-tab-pane label="配件申请单" name="getApply" v-if="userRole !== 'repair_staff'">
<el-tab-pane label="配件申请单" name="getApply">
<TicketWares :type="true" :user-role="userRole"/>
</el-tab-pane>
<el-tab-pane name="finishGetWares" label="领料确认" v-if="userRole === 'repair_staff'">

View File

@ -146,18 +146,18 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择">
<el-option
v-for="item in postOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="岗位">-->
<!-- <el-select v-model="form.postIds" multiple placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in postOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row>
<el-col :span="24">

View File

@ -27,10 +27,10 @@
<svg-icon icon-class="tree" />所属部门
<div class="pull-right" v-if="user.dept">{{ user.dept.name }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="tree" />所属岗位
<div class="pull-right" v-if="user.posts">{{ user.posts.map(post => post.name).join(',') }}</div>
</li>
<!-- <li class="list-group-item">-->
<!-- <svg-icon icon-class="tree" />所属岗位-->
<!-- <div class="pull-right" v-if="user.posts">{{ user.posts.map(post => post.name).join(',') }}</div>-->
<!-- </li>-->
<li class="list-group-item">
<svg-icon icon-class="peoples" />所属角色
<div class="pull-right" v-if="user.roles">{{ user.roles.map(role => role.name).join(',') }}</div>