首页领料任务催办功能完善,页面优化等问题
This commit is contained in:
parent
e4e4ce6dea
commit
2e0814935e
|
|
@ -54,11 +54,11 @@
|
|||
style="width: 240px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型" prop="selDeviceTypeChangeValue">
|
||||
<el-form-item label="设备类型" prop="companyId">
|
||||
<el-select
|
||||
@change="selDeviceTypeChange"
|
||||
style="width: 240px"
|
||||
v-model="selDeviceTypeChangeValue"
|
||||
v-model="queryParams.companyId"
|
||||
:disabled="leaseApplyDetails.length > 0"
|
||||
placeholder="请选择设备类型"
|
||||
clearable
|
||||
|
|
@ -399,6 +399,13 @@ export default {
|
|||
type: 'number',
|
||||
},
|
||||
],
|
||||
companyId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择设备类型',
|
||||
trigger: 'change',
|
||||
},
|
||||
],
|
||||
// leasePerson: [
|
||||
// {
|
||||
// required: true, message: '请输入领料人', trigger: 'blur',
|
||||
|
|
@ -557,6 +564,7 @@ export default {
|
|||
this.queryParams.examineStatusId = '32'
|
||||
}
|
||||
this.queryParams.unitId = data.unitId
|
||||
this.queryParams.companyId = data.companyId
|
||||
this.queryParams.proId = data.proId
|
||||
this.queryParams.leaseApplyInfo.phone =
|
||||
data.leaseApplyInfoList[0].phone
|
||||
|
|
@ -586,6 +594,7 @@ export default {
|
|||
this.queryParams.examineStatusId = '32'
|
||||
}
|
||||
this.queryParams.unitId = data.unitId
|
||||
this.queryParams.companyId = data.companyId
|
||||
this.queryParams.proId = data.proId
|
||||
this.queryParams.leaseApplyInfo.phone =
|
||||
data.leaseApplyInfoList[0].phone
|
||||
|
|
@ -699,7 +708,7 @@ export default {
|
|||
throw e
|
||||
}
|
||||
this.queryParams.createBy = this.user.userName
|
||||
this.queryParams.companyId = this.user.companyId
|
||||
// this.queryParams.companyId = this.user.companyId
|
||||
this.queryParams.userId = this.user.userId
|
||||
let res
|
||||
|
||||
|
|
|
|||
|
|
@ -255,7 +255,9 @@
|
|||
:show-overflow-tooltip="true"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.leaseApplyInfoList[0].remark }}</span>
|
||||
<span>{{
|
||||
scope.row.leaseApplyInfoList[0].remark || ''
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="160">
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@
|
|||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="领料人"
|
||||
label="现场领料人"
|
||||
align="center"
|
||||
prop="leasePerson"
|
||||
:show-overflow-tooltip="true"
|
||||
|
|
@ -191,7 +191,7 @@
|
|||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="申请人"
|
||||
label="领料申请人"
|
||||
align="center"
|
||||
prop="applyFor"
|
||||
:show-overflow-tooltip="true"
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
:pageContent="pageContent"
|
||||
@goBack="goBack"
|
||||
/>
|
||||
<keep-alive include="Home">
|
||||
<keep-alive :include="includeCom">
|
||||
<component
|
||||
:is="isShowComponent"
|
||||
:isView="isView"
|
||||
|
|
@ -35,11 +35,13 @@ export default {
|
|||
pageContent: '',
|
||||
auditingTaskId: '',
|
||||
isView: false,
|
||||
includeCom: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/* 审核按钮 */
|
||||
pickingAuditing(taskId) {
|
||||
this.includeCom = ''
|
||||
this.auditingTaskId = taskId
|
||||
this.isView = false
|
||||
this.pageContent = '领料任务审批'
|
||||
|
|
@ -47,6 +49,7 @@ export default {
|
|||
},
|
||||
/* 查看按钮 */
|
||||
pickingView(taskId) {
|
||||
this.includeCom = 'Home'
|
||||
this.auditingTaskId = taskId
|
||||
this.isView = true
|
||||
this.pageContent = '领料审批详情'
|
||||
|
|
|
|||
|
|
@ -51,10 +51,23 @@
|
|||
style="width: 240px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型" prop="selDeviceTypeChangeValue">
|
||||
<el-select
|
||||
@change="selDeviceTypeChange"
|
||||
style="width: 240px"
|
||||
v-model="selDeviceTypeChangeValue"
|
||||
:disabled="leaseApplyDetails.length > 0"
|
||||
placeholder="请选择设备类型"
|
||||
clearable
|
||||
>
|
||||
<el-option label="机具设备" value="101"></el-option>
|
||||
<el-option label="调试设备" value="102"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物品类型" prop="status">
|
||||
<el-cascader
|
||||
placeholder="请输入物品类型"
|
||||
:options="deviceTypeTree"
|
||||
:options="deviceTypeTreeNew"
|
||||
:props="deviceTypeTreeProps"
|
||||
v-model="deviceType"
|
||||
@change="deviceTypeChange"
|
||||
|
|
@ -466,8 +479,11 @@ export default {
|
|||
},
|
||||
companyId: '',
|
||||
createBy: '',
|
||||
userId: '',
|
||||
isEdit: 'true',
|
||||
rowId: '',
|
||||
selDeviceTypeChangeValue: '',
|
||||
deviceTypeTreeNew: [],
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -488,6 +504,7 @@ export default {
|
|||
getInfo().then((res) => {
|
||||
this.companyId = res.user.companyId
|
||||
this.createBy = res.user.userName
|
||||
this.userId = res.user.userId
|
||||
})
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -722,6 +739,7 @@ export default {
|
|||
}
|
||||
this.queryParams.createBy = this.user.name
|
||||
this.queryParams.companyId = this.companyId
|
||||
this.queryParams.userId = this.userId
|
||||
this.queryParams.backApplyInfo = {
|
||||
backPerson: this.queryParams.backPerson,
|
||||
phone: this.queryParams.phone,
|
||||
|
|
@ -733,6 +751,7 @@ export default {
|
|||
let params = {
|
||||
companyId: this.companyId,
|
||||
createBy: this.createBy,
|
||||
userId: this.userId,
|
||||
id: this.rowId,
|
||||
agreementId: this.queryParams.agreementId,
|
||||
backApplyInfo: this.queryParams.backApplyInfo,
|
||||
|
|
@ -754,6 +773,7 @@ export default {
|
|||
let params = {
|
||||
companyId: this.companyId,
|
||||
createBy: this.createBy,
|
||||
userId: this.userId,
|
||||
agreementId: this.queryParams.agreementId,
|
||||
backApplyInfo: this.queryParams.backApplyInfo,
|
||||
backApplyDetails:
|
||||
|
|
@ -894,6 +914,17 @@ export default {
|
|||
template.useNum = node.data.useNum
|
||||
return template
|
||||
},
|
||||
|
||||
// 设备类型选择 过滤对应的数据
|
||||
selDeviceTypeChange(val) {
|
||||
console.log(val, '设备类型选择-----')
|
||||
|
||||
console.log(this.deviceTypeTree, '树形数据源--')
|
||||
|
||||
this.deviceTypeTreeNew = this.deviceTypeTree.filter(
|
||||
(e) => e.companyId == val,
|
||||
)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@
|
|||
size="medium"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
v-if="scope.row.applyStatus == '0'"
|
||||
v-if="scope.row.taskStatus == '37'"
|
||||
v-hasPermi="['return:auditing:auditing']"
|
||||
@click="handleUpdate(scope.row, 'update')"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -203,12 +203,17 @@
|
|||
type="text"
|
||||
icon="el-icon-edit-outline"
|
||||
style="color: #e6a23c"
|
||||
v-if="row.taskTypeId == 29"
|
||||
v-if="
|
||||
row.taskTypeId == 29 &&
|
||||
userId === parseInt(row.createBy)
|
||||
"
|
||||
@click="
|
||||
handleUrging(
|
||||
row.taskTypeId,
|
||||
parseInt(row.taskTypeId), // 任务类型
|
||||
parseInt(row.companyId), // 机具类型
|
||||
row.taskEvent, // 任务状态
|
||||
parseInt(row.createBy), // 任务创建人
|
||||
row.taskCode,
|
||||
row.taskEvent,
|
||||
row.taskId,
|
||||
)
|
||||
"
|
||||
|
|
@ -267,6 +272,22 @@
|
|||
>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 催办详情 -->
|
||||
<DialogModel
|
||||
:dialogConfig="dialogConfig"
|
||||
@closeDialogOuter="closeDialogOuter"
|
||||
>
|
||||
<template slot="outerContent">
|
||||
<el-tag
|
||||
style="margin-right: 8px"
|
||||
v-for="item in toPersonInfoDetails"
|
||||
:key="item.v_user_id"
|
||||
>
|
||||
{{ item.v_name }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</DialogModel>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
@ -277,8 +298,13 @@ import {
|
|||
getToPersonInfoAp,
|
||||
sendUrgingMessageApi,
|
||||
} from '@/api/index'
|
||||
|
||||
import DialogModel from '@/components/DialogModel'
|
||||
export default {
|
||||
name: 'myIndex',
|
||||
components: {
|
||||
DialogModel,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
|
|
@ -356,6 +382,16 @@ export default {
|
|||
// 接收人
|
||||
bmNoticeInfoList: [],
|
||||
},
|
||||
|
||||
dialogConfig: {
|
||||
outerWidth: '50%',
|
||||
outerTitle: '催办人详情',
|
||||
outerVisible: false,
|
||||
},
|
||||
|
||||
userId: parseInt(sessionStorage.getItem('userId')),
|
||||
deptId: parseInt(sessionStorage.getItem('deptId')),
|
||||
toPersonInfoDetails: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
@ -422,18 +458,30 @@ export default {
|
|||
},
|
||||
|
||||
/* 催办按钮 */
|
||||
async handleUrging(id, taskCode, taskStatus, taskId) {
|
||||
async handleUrging(
|
||||
taskTypeId,
|
||||
companyId,
|
||||
taskStatus,
|
||||
createBy,
|
||||
taskCode,
|
||||
taskId,
|
||||
) {
|
||||
const personParams = {
|
||||
taskTypeId, // 当前任务类型
|
||||
companyId, // 当前机具类型
|
||||
taskStatus, // 当前任务状态
|
||||
createBy, // 当前任务创建人
|
||||
deptId: this.deptId, // 当前任务的所属部门
|
||||
}
|
||||
/* 先获取催办人信息 */
|
||||
const { data: res } = await getToPersonInfoAp({
|
||||
taskStatus,
|
||||
})
|
||||
const { data: res } = await getToPersonInfoAp(personParams)
|
||||
res.map((e) => {
|
||||
this.toPersonInfo.push({
|
||||
noticeUser: e.userId,
|
||||
phone: e.phonenumber,
|
||||
modelName: '领料催办',
|
||||
companyId: e.companyId,
|
||||
v_name: e.nickName,
|
||||
v_name: e.userName,
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -465,6 +513,31 @@ export default {
|
|||
this.toPersonInfo = []
|
||||
this.urgingDialogVisible = false
|
||||
},
|
||||
|
||||
/* 查看催办人详情 */
|
||||
async handleViewDetails(taskTypeId, companyId, taskStatus, createBy) {
|
||||
this.toPersonInfoDetails = []
|
||||
const personParams = {
|
||||
taskTypeId, // 当前任务类型
|
||||
companyId, // 当前机具类型
|
||||
taskStatus, // 当前任务状态
|
||||
createBy, // 当前任务创建人
|
||||
deptId: this.deptId, // 当前任务的所属部门
|
||||
}
|
||||
/* 先获取催办人信息 */
|
||||
const { data: res } = await getToPersonInfoAp(personParams)
|
||||
res.map((e) => {
|
||||
this.toPersonInfoDetails.push({
|
||||
v_user_id: e.userId,
|
||||
v_name: e.userName,
|
||||
})
|
||||
})
|
||||
this.dialogConfig.outerVisible = true
|
||||
},
|
||||
/* 关闭外层弹框 */
|
||||
closeDialogOuter(val) {
|
||||
this.dialogConfig.outerVisible = val
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,36 +1,44 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
v-loading.fullscreen.lock="fullscreenLoading"
|
||||
:before-close="cancel"
|
||||
:title="dialogTitle"
|
||||
:visible.sync="dialogShowFlag"
|
||||
append-to-body
|
||||
width="600px"
|
||||
>
|
||||
<div class="form_box_one" v-if="!isShow">
|
||||
<el-form ref="dynamicValidateForm" :model="dynamicValidateForm" class="demo-dynamic" label-width="90px">
|
||||
<div class="bor_box">
|
||||
<p class="form_box_title">编码管理设备</p>
|
||||
<div class="form_box_line"></div>
|
||||
<div class="form_box_item">
|
||||
<el-form-item label="报废原因:">
|
||||
<el-input
|
||||
v-model="dynamicValidateForm.scrapReason"
|
||||
placeholder="请输入"
|
||||
size="small"
|
||||
maxlength="50"
|
||||
style="width: 350px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="损坏原因:">
|
||||
<el-radio-group style="width: 350px" v-model="dynamicValidateForm.scrapType">
|
||||
<el-radio :label="1">人为</el-radio>
|
||||
<el-radio :label="0">自然</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="损坏照片:">
|
||||
<!-- <uploadImage
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
v-loading.fullscreen.lock="fullscreenLoading"
|
||||
:before-close="cancel"
|
||||
:title="dialogTitle"
|
||||
:visible.sync="dialogShowFlag"
|
||||
append-to-body
|
||||
width="600px"
|
||||
>
|
||||
<div class="form_box_one" v-if="!isShow">
|
||||
<el-form
|
||||
ref="dynamicValidateForm"
|
||||
:model="dynamicValidateForm"
|
||||
class="demo-dynamic"
|
||||
label-width="90px"
|
||||
>
|
||||
<div class="bor_box">
|
||||
<p class="form_box_title">编码管理设备</p>
|
||||
<div class="form_box_line"></div>
|
||||
<div class="form_box_item">
|
||||
<el-form-item label="报废原因:">
|
||||
<el-input
|
||||
v-model="dynamicValidateForm.scrapReason"
|
||||
placeholder="请输入"
|
||||
size="small"
|
||||
maxlength="50"
|
||||
style="width: 350px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="损坏原因:">
|
||||
<el-radio-group
|
||||
style="width: 350px"
|
||||
v-model="dynamicValidateForm.scrapType"
|
||||
>
|
||||
<el-radio :label="1">人为</el-radio>
|
||||
<el-radio :label="0">自然</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="损坏照片:">
|
||||
<!-- <uploadImage
|
||||
style="width: 250px"
|
||||
:value="fileList"
|
||||
:limit="limit"
|
||||
|
|
@ -39,75 +47,87 @@
|
|||
:isShowTip="isShowTip"
|
||||
@fileListChange="fileListChange"
|
||||
></uploadImage> -->
|
||||
<upload
|
||||
style="width: 350px"
|
||||
:file-list="fileList"
|
||||
:action-url="actionUrl"
|
||||
:limit="3"
|
||||
:multiple="true"
|
||||
@remove="handleRemove"
|
||||
@preview="handlePreview"
|
||||
@before-remove="beforeRemove"
|
||||
@success="handleSuccess"
|
||||
>
|
||||
<template>
|
||||
<el-row class="upload-tip">
|
||||
<el-button size="small" type="primary">点击上传</el-button>
|
||||
</el-row>
|
||||
<el-row class="upload-tip">
|
||||
<span class="tip-text">请上传jpg、jpeg、png格式的图片,单张图片大小不可超过5M,最多可上传3张</span>
|
||||
</el-row>
|
||||
</template>
|
||||
</upload>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<upload
|
||||
style="width: 350px"
|
||||
:file-list="fileList"
|
||||
:action-url="actionUrl"
|
||||
:limit="3"
|
||||
:multiple="true"
|
||||
@remove="handleRemove"
|
||||
@preview="handlePreview"
|
||||
@before-remove="beforeRemove"
|
||||
@success="handleSuccess"
|
||||
>
|
||||
<template>
|
||||
<el-row class="upload-tip">
|
||||
<el-button size="small" type="primary"
|
||||
>点击上传</el-button
|
||||
>
|
||||
</el-row>
|
||||
<el-row class="upload-tip">
|
||||
<span class="tip-text"
|
||||
>请上传jpg、jpeg、png格式的图片,单张图片大小不可超过5M,最多可上传3张</span
|
||||
>
|
||||
</el-row>
|
||||
</template>
|
||||
</upload>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="cancel">取消</el-button>
|
||||
<el-button type="primary" @click="submit">保存</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="cancel">取消</el-button>
|
||||
<el-button type="primary" @click="submit">保存</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form_box_two" v-if="isShow">
|
||||
<el-form ref="dynamicValidateFormTwo" :model="dynamicValidateFormTwo" class="demo-dynamic" label-width="100px">
|
||||
<p class="form_box_title">数量管理设备</p>
|
||||
<div class="form_box_line"></div>
|
||||
<div class="form_box_item">
|
||||
<el-form-item
|
||||
label="报废数量:"
|
||||
prop="scrapNum"
|
||||
:rules="{
|
||||
required: true,
|
||||
validator: numberIntegerValidator,
|
||||
trigger: 'blur',
|
||||
}"
|
||||
>
|
||||
<el-input
|
||||
v-model="dynamicValidateFormTwo.scrapNum"
|
||||
placeholder="请输入"
|
||||
size="small"
|
||||
maxlength="10"
|
||||
style="width: 350px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="报废原因:">
|
||||
<el-input
|
||||
v-model="dynamicValidateFormTwo.scrapReason"
|
||||
placeholder="请输入"
|
||||
size="small"
|
||||
maxlength="50"
|
||||
style="width: 350px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="损坏原因:">
|
||||
<el-radio-group style="width: 350px" v-model="dynamicValidateFormTwo.scrapType">
|
||||
<el-radio :label="1">人为</el-radio>
|
||||
<el-radio :label="0">自然</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<div class="form_box_two" v-if="isShow">
|
||||
<el-form
|
||||
ref="dynamicValidateFormTwo"
|
||||
:model="dynamicValidateFormTwo"
|
||||
class="demo-dynamic"
|
||||
label-width="100px"
|
||||
>
|
||||
<p class="form_box_title">数量管理设备</p>
|
||||
<div class="form_box_line"></div>
|
||||
<div class="form_box_item">
|
||||
<el-form-item
|
||||
label="报废数量:"
|
||||
prop="scrapNum"
|
||||
:rules="{
|
||||
required: true,
|
||||
validator: numberIntegerValidator,
|
||||
trigger: 'blur',
|
||||
}"
|
||||
>
|
||||
<el-input
|
||||
v-model="dynamicValidateFormTwo.scrapNum"
|
||||
placeholder="请输入"
|
||||
size="small"
|
||||
maxlength="10"
|
||||
style="width: 350px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="报废原因:">
|
||||
<el-input
|
||||
v-model="dynamicValidateFormTwo.scrapReason"
|
||||
placeholder="请输入"
|
||||
size="small"
|
||||
maxlength="50"
|
||||
style="width: 350px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="损坏原因:">
|
||||
<el-radio-group
|
||||
style="width: 350px"
|
||||
v-model="dynamicValidateFormTwo.scrapType"
|
||||
>
|
||||
<el-radio :label="1">人为</el-radio>
|
||||
<el-radio :label="0">自然</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="损坏照片:">
|
||||
<!-- <uploadImage
|
||||
<el-form-item label="损坏照片:">
|
||||
<!-- <uploadImage
|
||||
style="width: 250px"
|
||||
:value="fileList"
|
||||
:limit="limit"
|
||||
|
|
@ -116,368 +136,379 @@
|
|||
:isShowTip="isShowTip"
|
||||
@fileListChange="fileListChange"
|
||||
></uploadImage> -->
|
||||
<upload
|
||||
style="width: 350px"
|
||||
:file-list="fileList"
|
||||
:action-url="actionUrl"
|
||||
:limit="3"
|
||||
:multiple="true"
|
||||
@remove="handleRemove"
|
||||
@preview="handlePreview"
|
||||
@before-remove="beforeRemove"
|
||||
@success="handleSuccess"
|
||||
>
|
||||
<template>
|
||||
<el-row class="upload-tip">
|
||||
<el-button size="small" type="primary">点击上传</el-button>
|
||||
</el-row>
|
||||
<el-row class="upload-tip">
|
||||
<span class="tip-text">请上传jpg、jpeg、png格式的图片,单张图片大小不可超过5M,最多可上传3张</span>
|
||||
</el-row>
|
||||
</template>
|
||||
</upload>
|
||||
</el-form-item>
|
||||
<upload
|
||||
style="width: 350px"
|
||||
:file-list="fileList"
|
||||
:action-url="actionUrl"
|
||||
:limit="3"
|
||||
:multiple="true"
|
||||
@remove="handleRemove"
|
||||
@preview="handlePreview"
|
||||
@before-remove="beforeRemove"
|
||||
@success="handleSuccess"
|
||||
>
|
||||
<template>
|
||||
<el-row class="upload-tip">
|
||||
<el-button size="small" type="primary"
|
||||
>点击上传</el-button
|
||||
>
|
||||
</el-row>
|
||||
<el-row class="upload-tip">
|
||||
<span class="tip-text"
|
||||
>请上传jpg、jpeg、png格式的图片,单张图片大小不可超过5M,最多可上传3张</span
|
||||
>
|
||||
</el-row>
|
||||
</template>
|
||||
</upload>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="cancel">取消</el-button>
|
||||
<el-button type="primary" @click="submitTwo">保存</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="cancel">取消</el-button>
|
||||
<el-button type="primary" @click="submitTwo">保存</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import uploadImage from './uploadImage.vue'
|
||||
import upload from './upload.vue'
|
||||
import { submitRepairApplyApi, getRepairMaTypeListApi } from '@/api/repairTest/repair'
|
||||
import {
|
||||
submitRepairApplyApi,
|
||||
getRepairMaTypeListApi,
|
||||
} from '@/api/repairTest/repair'
|
||||
import { getInfo } from '@/api/login'
|
||||
export default {
|
||||
components: {
|
||||
uploadImage,
|
||||
upload,
|
||||
},
|
||||
props: {
|
||||
// 弹窗是否显示
|
||||
isShowFlag: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
components: {
|
||||
uploadImage,
|
||||
upload,
|
||||
},
|
||||
// 对应操作数据键值
|
||||
priKey: {
|
||||
type: [String, Number],
|
||||
default: '',
|
||||
props: {
|
||||
// 弹窗是否显示
|
||||
isShowFlag: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
// 对应操作数据键值
|
||||
priKey: {
|
||||
type: [String, Number],
|
||||
default: '',
|
||||
},
|
||||
//弹窗标题
|
||||
dialogTitle: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
rowObj: {
|
||||
type: Object,
|
||||
default: {},
|
||||
},
|
||||
},
|
||||
//弹窗标题
|
||||
dialogTitle: {
|
||||
type: String,
|
||||
default: '',
|
||||
watch: {
|
||||
isShowFlag(val) {
|
||||
if (val) {
|
||||
this.init()
|
||||
}
|
||||
},
|
||||
},
|
||||
rowObj: {
|
||||
type: Object,
|
||||
default: {},
|
||||
computed: {
|
||||
dialogShowFlag: {
|
||||
get() {
|
||||
return this.isShowFlag
|
||||
},
|
||||
set(v) {
|
||||
this.$emit('update:isShowFlag', v)
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
isShowFlag(val) {
|
||||
if (val) {
|
||||
this.init()
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
dialogShowFlag: {
|
||||
get() {
|
||||
return this.isShowFlag
|
||||
},
|
||||
set(v) {
|
||||
this.$emit('update:isShowFlag', v)
|
||||
},
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// actionUrl: process.env.VUE_APP_BASE_API + '/sgzb-system/sys/file/upload',
|
||||
actionUrl: process.env.VUE_APP_BASE_API + '/system/sys/file/upload',
|
||||
// uploadTip: '只能上传jpg/png文件,且不超过500kb',
|
||||
fileIds: [],
|
||||
fileList: [],
|
||||
limit: 3,
|
||||
fileSize: 5,
|
||||
fileType: ['png', 'jpg', 'jpeg'],
|
||||
isShowTip: true,
|
||||
fullscreenLoading: false,
|
||||
dynamicValidateForm: {},
|
||||
dynamicValidateFormTwo: {},
|
||||
taskId: '',
|
||||
companyId: '',
|
||||
isShow: true,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$eventBus.$on('taskId', taskId => {
|
||||
this.taskId = taskId
|
||||
})
|
||||
getInfo().then(res => {
|
||||
this.companyId = res.user.companyId
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
handleRemove(file, fileList) {
|
||||
this.fileList = fileList
|
||||
console.log('fileListRemove', fileList)
|
||||
fileList.map(item => {
|
||||
this.fileIds = fileList.map(item => item.response.data.id).join(',')
|
||||
})
|
||||
},
|
||||
handlePreview(file) {
|
||||
console.log('file')
|
||||
},
|
||||
beforeRemove(file, fileList) {
|
||||
// return this.$confirm(`确定移除 ${file.name}?`);
|
||||
},
|
||||
handleSuccess(response, fileList) {
|
||||
this.fileList = fileList
|
||||
fileList.map(item => {
|
||||
this.fileIds = fileList.map(item => item.response.data.id).join(',')
|
||||
})
|
||||
},
|
||||
//正则校验配件数量--维修数量
|
||||
numberIntegerValidator(rule, value, callback) {
|
||||
const reg = /^\+?[1-9][0-9]*$/
|
||||
if ((value && reg.test(value)) && value <= this.rowObj.repairNum) {
|
||||
callback()
|
||||
} else {
|
||||
callback(new Error('请输入大于0并且小于维修总量的正整数'))
|
||||
}
|
||||
},
|
||||
getList() {
|
||||
let params = {
|
||||
taskId: this.taskId,
|
||||
}
|
||||
this.loading = true
|
||||
getRepairMaTypeListApi(params).then(res => {
|
||||
if (res.code == 200) {
|
||||
this.repairList = res.rows
|
||||
this.total = res.total
|
||||
this.loading = false
|
||||
data() {
|
||||
return {
|
||||
// actionUrl: process.env.VUE_APP_BASE_API + '/sgzb-system/sys/file/upload',
|
||||
actionUrl: process.env.VUE_APP_BASE_API + '/system/sys/file/upload',
|
||||
// uploadTip: '只能上传jpg/png文件,且不超过500kb',
|
||||
fileIds: [],
|
||||
fileList: [],
|
||||
limit: 3,
|
||||
fileSize: 5,
|
||||
fileType: ['png', 'jpg', 'jpeg'],
|
||||
isShowTip: true,
|
||||
fullscreenLoading: false,
|
||||
dynamicValidateForm: {},
|
||||
dynamicValidateFormTwo: {},
|
||||
taskId: '',
|
||||
companyId: '',
|
||||
isShow: true,
|
||||
}
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
this.$refs['dynamicValidateForm'].validate(valid => {
|
||||
if (valid) {
|
||||
// 编码管理传递参数
|
||||
let params = {
|
||||
taskId: this.rowObj.taskId,
|
||||
maId: this.rowObj.maId,
|
||||
typeId: this.rowObj.typeId,
|
||||
id: this.rowObj.id,
|
||||
repairType: 3,
|
||||
companyId: this.companyId,
|
||||
scrapReason: this.dynamicValidateForm.scrapReason,
|
||||
scrapType: this.dynamicValidateForm.scrapType,
|
||||
fileIds: this.fileIds.length > 0 ? this.fileIds : '',
|
||||
scrapNum: 1,
|
||||
}
|
||||
this.fullscreenLoading = true
|
||||
submitRepairApplyApi(params)
|
||||
.then(res => {
|
||||
if (res.code == 200) {
|
||||
this.fileList = []
|
||||
this.fileIds = []
|
||||
this.getList()
|
||||
this.$message.success('操作成功!')
|
||||
this.fullscreenLoading = false
|
||||
this.dialogShowFlag = false
|
||||
this.$emit('domainChange', res.code)
|
||||
}
|
||||
mounted() {
|
||||
this.$eventBus.$on('taskId', (taskId) => {
|
||||
this.taskId = taskId
|
||||
})
|
||||
getInfo().then((res) => {
|
||||
this.companyId = res.user.companyId
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
handleRemove(file, fileList) {
|
||||
this.fileList = fileList
|
||||
console.log('fileListRemove', fileList)
|
||||
fileList.map((item) => {
|
||||
this.fileIds = fileList
|
||||
.map((item) => item.response.data.id)
|
||||
.join(',')
|
||||
})
|
||||
.catch(() => {
|
||||
this.fullscreenLoading = false
|
||||
},
|
||||
handlePreview(file) {
|
||||
console.log('file')
|
||||
},
|
||||
beforeRemove(file, fileList) {
|
||||
// return this.$confirm(`确定移除 ${file.name}?`);
|
||||
},
|
||||
handleSuccess(response, fileList) {
|
||||
this.fileList = fileList
|
||||
fileList.map((item) => {
|
||||
this.fileIds = fileList
|
||||
.map((item) => item.response.data.id)
|
||||
.join(',')
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
submitTwo() {
|
||||
this.$refs['dynamicValidateFormTwo'].validate(valid => {
|
||||
if (valid) {
|
||||
// 数量管理传递参数
|
||||
let params = {
|
||||
taskId: this.rowObj.taskId,
|
||||
maId: this.rowObj.maId,
|
||||
typeId: this.rowObj.typeId,
|
||||
id: this.rowObj.id,
|
||||
companyId: this.companyId,
|
||||
repairType: 3,
|
||||
companyId: this.companyId,
|
||||
scrapReason: this.dynamicValidateFormTwo.scrapReason,
|
||||
scrapType: this.dynamicValidateFormTwo.scrapType,
|
||||
fileIds: this.fileIds.length > 0 ? this.fileIds : '',
|
||||
scrapNum: this.dynamicValidateFormTwo.scrapNum,
|
||||
}
|
||||
this.fullscreenLoading = true
|
||||
submitRepairApplyApi(params)
|
||||
.then(res => {
|
||||
if (res.code == 200) {
|
||||
this.$refs.dynamicValidateFormTwo.clearValidate()
|
||||
this.fileList = []
|
||||
this.fileIds = []
|
||||
this.getList()
|
||||
this.$message.success('操作成功!')
|
||||
this.fullscreenLoading = false
|
||||
this.dialogShowFlag = false
|
||||
this.$emit('domainChange', res.code)
|
||||
}
|
||||
},
|
||||
//正则校验配件数量--维修数量
|
||||
numberIntegerValidator(rule, value, callback) {
|
||||
const reg = /^\+?[1-9][0-9]*$/
|
||||
if (value && reg.test(value) && value <= this.rowObj.repairNum) {
|
||||
callback()
|
||||
} else {
|
||||
callback(new Error('请输入大于0并且小于维修总量的正整数'))
|
||||
}
|
||||
},
|
||||
getList() {
|
||||
let params = {
|
||||
taskId: this.taskId,
|
||||
}
|
||||
this.loading = true
|
||||
getRepairMaTypeListApi(params).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.repairList = res.rows
|
||||
this.total = res.total
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.$refs.dynamicValidateFormTwo.clearValidate()
|
||||
this.fullscreenLoading = false
|
||||
},
|
||||
submit() {
|
||||
this.$refs['dynamicValidateForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
// 编码管理传递参数
|
||||
let params = {
|
||||
taskId: this.rowObj.taskId,
|
||||
maId: this.rowObj.maId,
|
||||
typeId: this.rowObj.typeId,
|
||||
id: this.rowObj.id,
|
||||
repairType: 3,
|
||||
companyId: this.companyId,
|
||||
scrapReason: this.dynamicValidateForm.scrapReason,
|
||||
scrapType: this.dynamicValidateForm.scrapType,
|
||||
fileIds: this.fileIds.length > 0 ? this.fileIds : '',
|
||||
scrapNum: 1,
|
||||
}
|
||||
this.fullscreenLoading = true
|
||||
submitRepairApplyApi(params)
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.fileList = []
|
||||
this.fileIds = []
|
||||
this.getList()
|
||||
this.$message.success('操作成功!')
|
||||
this.fullscreenLoading = false
|
||||
this.dialogShowFlag = false
|
||||
this.$emit('domainChange', res.code)
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
submitTwo() {
|
||||
this.$refs['dynamicValidateFormTwo'].validate((valid) => {
|
||||
if (valid) {
|
||||
// 数量管理传递参数
|
||||
let params = {
|
||||
taskId: this.rowObj.taskId,
|
||||
maId: this.rowObj.maId,
|
||||
typeId: this.rowObj.typeId,
|
||||
id: this.rowObj.id,
|
||||
companyId: this.companyId,
|
||||
repairType: 3,
|
||||
companyId: this.companyId,
|
||||
scrapReason: this.dynamicValidateFormTwo.scrapReason,
|
||||
scrapType: this.dynamicValidateFormTwo.scrapType,
|
||||
fileIds: this.fileIds.length > 0 ? this.fileIds : '',
|
||||
scrapNum: this.dynamicValidateFormTwo.scrapNum,
|
||||
}
|
||||
this.fullscreenLoading = true
|
||||
submitRepairApplyApi(params)
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.$refs.dynamicValidateFormTwo.clearValidate()
|
||||
this.fileList = []
|
||||
this.fileIds = []
|
||||
this.getList()
|
||||
this.$message.success('操作成功!')
|
||||
this.fullscreenLoading = false
|
||||
this.dialogShowFlag = false
|
||||
this.$emit('domainChange', res.code)
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.$refs.dynamicValidateFormTwo.clearValidate()
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
fileListChange(data) {
|
||||
data.map((item) => {
|
||||
this.fileIds = data.map((item) => item.id).join(',')
|
||||
})
|
||||
},
|
||||
init() {
|
||||
if (this.rowObj.code !== null && this.rowObj.code !== '') {
|
||||
this.dynamicValidateForm = {}
|
||||
this.dynamicValidateFormTwo = {}
|
||||
this.isShow = false
|
||||
} else {
|
||||
this.dynamicValidateForm = {}
|
||||
this.dynamicValidateFormTwo = {}
|
||||
this.isShow = true
|
||||
}
|
||||
getInfo().then((res) => {
|
||||
this.companyId = res.user.companyId
|
||||
})
|
||||
this.fileList = []
|
||||
this.fileIds = []
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
// this.$refs.dynamicValidateFormTwo.clearValidate()
|
||||
this.dialogShowFlag = false
|
||||
this.fileList = []
|
||||
},
|
||||
addDomainOne() {
|
||||
this.dynamicValidateForm.premiumList.push({
|
||||
selected: 'N',
|
||||
premium: undefined,
|
||||
rate: undefined,
|
||||
feeRate: undefined,
|
||||
fee: undefined,
|
||||
baofei1_unit: '',
|
||||
shangyoufeiyonge_unit: '',
|
||||
downRate: undefined,
|
||||
downFee: undefined,
|
||||
xiayoufeiyonge_unit: '',
|
||||
key: Date.now(),
|
||||
})
|
||||
},
|
||||
addDomainTwo() {
|
||||
this.dynamicValidateForm.premiumListTwo.push({
|
||||
selected: 'N',
|
||||
premium: undefined,
|
||||
rate: undefined,
|
||||
feeRate: undefined,
|
||||
fee: undefined,
|
||||
baofei1_unit: '',
|
||||
shangyoufeiyonge_unit: '',
|
||||
downRate: undefined,
|
||||
downFee: undefined,
|
||||
xiayoufeiyonge_unit: '',
|
||||
key: Date.now(),
|
||||
})
|
||||
},
|
||||
},
|
||||
fileListChange(data) {
|
||||
data.map(item => {
|
||||
this.fileIds = data.map(item => item.id).join(',')
|
||||
})
|
||||
},
|
||||
init() {
|
||||
if (this.rowObj.code !== null && this.rowObj.code !== '') {
|
||||
this.dynamicValidateForm = {}
|
||||
this.dynamicValidateFormTwo = {}
|
||||
this.isShow = false
|
||||
} else {
|
||||
this.dynamicValidateForm = {}
|
||||
this.dynamicValidateFormTwo = {}
|
||||
this.isShow = true
|
||||
}
|
||||
getInfo().then(res => {
|
||||
this.companyId = res.user.companyId
|
||||
})
|
||||
this.fileList = []
|
||||
this.fileIds = []
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.$refs.dynamicValidateFormTwo.clearValidate()
|
||||
this.dialogShowFlag = false
|
||||
this.fileList = []
|
||||
},
|
||||
addDomainOne() {
|
||||
this.dynamicValidateForm.premiumList.push({
|
||||
selected: 'N',
|
||||
premium: undefined,
|
||||
rate: undefined,
|
||||
feeRate: undefined,
|
||||
fee: undefined,
|
||||
baofei1_unit: '',
|
||||
shangyoufeiyonge_unit: '',
|
||||
downRate: undefined,
|
||||
downFee: undefined,
|
||||
xiayoufeiyonge_unit: '',
|
||||
key: Date.now(),
|
||||
})
|
||||
},
|
||||
addDomainTwo() {
|
||||
this.dynamicValidateForm.premiumListTwo.push({
|
||||
selected: 'N',
|
||||
premium: undefined,
|
||||
rate: undefined,
|
||||
feeRate: undefined,
|
||||
fee: undefined,
|
||||
baofei1_unit: '',
|
||||
shangyoufeiyonge_unit: '',
|
||||
downRate: undefined,
|
||||
downFee: undefined,
|
||||
xiayoufeiyonge_unit: '',
|
||||
key: Date.now(),
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.form_box_one {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.form_box_title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.form_box_line {
|
||||
margin: 8px 0;
|
||||
width: 100%;
|
||||
border-bottom: 2px solid #1a1c22;
|
||||
}
|
||||
|
||||
.form_box_item {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.add_box {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-right: 3%;
|
||||
}
|
||||
.form_box_title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.form_box_line {
|
||||
margin: 8px 0;
|
||||
width: 100%;
|
||||
border-bottom: 2px solid #1a1c22;
|
||||
}
|
||||
|
||||
.form_box_item {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.add_box {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-right: 3%;
|
||||
}
|
||||
}
|
||||
|
||||
.form_box_two {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.form_box_title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.form_box_line {
|
||||
margin: 8px 0;
|
||||
width: 100%;
|
||||
border-bottom: 2px solid #1a1c22;
|
||||
}
|
||||
|
||||
.form_box_item {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.add_box {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-right: 3%;
|
||||
}
|
||||
.form_box_title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.form_box_line {
|
||||
margin: 8px 0;
|
||||
width: 100%;
|
||||
border-bottom: 2px solid #1a1c22;
|
||||
}
|
||||
|
||||
.form_box_item {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.add_box {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-right: 3%;
|
||||
}
|
||||
}
|
||||
|
||||
.dialog-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.upload-tip {
|
||||
text-align: left;
|
||||
text-align: left;
|
||||
|
||||
.tip-text {
|
||||
font-size: 13px;
|
||||
color: red;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
.tip-text {
|
||||
font-size: 13px;
|
||||
color: red;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ module.exports = {
|
|||
// target: `http://10.40.92.51:28080`, //超
|
||||
// target: `http://10.40.92.81:8080`, //韩/
|
||||
// target: `http://10.40.92.74:8080`,//旭/
|
||||
target: `http://10.40.92.138:28080`, //帅
|
||||
// target: `http://10.40.92.253:28080`, //福
|
||||
// target: `http://10.40.92.138:28080`, //帅
|
||||
target: `http://10.40.92.253:28080`, //福
|
||||
|
||||
//******** 注意事项 ********* */
|
||||
//1.全局替换qrUrl二维码扫码提供的网址-发布服务器的地址target;
|
||||
|
|
|
|||
Loading…
Reference in New Issue