首页领料任务催办功能完善,页面优化等问题

This commit is contained in:
BianLzhaoMin 2024-06-14 17:24:17 +08:00
parent e4e4ce6dea
commit 2e0814935e
10 changed files with 592 additions and 443 deletions

View File

@ -54,11 +54,11 @@
style="width: 240px" style="width: 240px"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设备类型" prop="selDeviceTypeChangeValue"> <el-form-item label="设备类型" prop="companyId">
<el-select <el-select
@change="selDeviceTypeChange" @change="selDeviceTypeChange"
style="width: 240px" style="width: 240px"
v-model="selDeviceTypeChangeValue" v-model="queryParams.companyId"
:disabled="leaseApplyDetails.length > 0" :disabled="leaseApplyDetails.length > 0"
placeholder="请选择设备类型" placeholder="请选择设备类型"
clearable clearable
@ -399,6 +399,13 @@ export default {
type: 'number', type: 'number',
}, },
], ],
companyId: [
{
required: true,
message: '请选择设备类型',
trigger: 'change',
},
],
// leasePerson: [ // leasePerson: [
// { // {
// required: true, message: '', trigger: 'blur', // required: true, message: '', trigger: 'blur',
@ -557,6 +564,7 @@ export default {
this.queryParams.examineStatusId = '32' this.queryParams.examineStatusId = '32'
} }
this.queryParams.unitId = data.unitId this.queryParams.unitId = data.unitId
this.queryParams.companyId = data.companyId
this.queryParams.proId = data.proId this.queryParams.proId = data.proId
this.queryParams.leaseApplyInfo.phone = this.queryParams.leaseApplyInfo.phone =
data.leaseApplyInfoList[0].phone data.leaseApplyInfoList[0].phone
@ -586,6 +594,7 @@ export default {
this.queryParams.examineStatusId = '32' this.queryParams.examineStatusId = '32'
} }
this.queryParams.unitId = data.unitId this.queryParams.unitId = data.unitId
this.queryParams.companyId = data.companyId
this.queryParams.proId = data.proId this.queryParams.proId = data.proId
this.queryParams.leaseApplyInfo.phone = this.queryParams.leaseApplyInfo.phone =
data.leaseApplyInfoList[0].phone data.leaseApplyInfoList[0].phone
@ -699,7 +708,7 @@ export default {
throw e throw e
} }
this.queryParams.createBy = this.user.userName this.queryParams.createBy = this.user.userName
this.queryParams.companyId = this.user.companyId // this.queryParams.companyId = this.user.companyId
this.queryParams.userId = this.user.userId this.queryParams.userId = this.user.userId
let res let res

View File

@ -255,7 +255,9 @@
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.leaseApplyInfoList[0].remark }}</span> <span>{{
scope.row.leaseApplyInfoList[0].remark || ''
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="160"> <el-table-column label="操作" align="center" width="160">

View File

@ -179,7 +179,7 @@
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> />
<el-table-column <el-table-column
label="领料人" label="现场领料人"
align="center" align="center"
prop="leasePerson" prop="leasePerson"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
@ -191,7 +191,7 @@
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> />
<el-table-column <el-table-column
label="申请人" label="领料申请人"
align="center" align="center"
prop="applyFor" prop="applyFor"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"

View File

@ -6,7 +6,7 @@
:pageContent="pageContent" :pageContent="pageContent"
@goBack="goBack" @goBack="goBack"
/> />
<keep-alive include="Home"> <keep-alive :include="includeCom">
<component <component
:is="isShowComponent" :is="isShowComponent"
:isView="isView" :isView="isView"
@ -35,11 +35,13 @@ export default {
pageContent: '', pageContent: '',
auditingTaskId: '', auditingTaskId: '',
isView: false, isView: false,
includeCom: '',
} }
}, },
methods: { methods: {
/* 审核按钮 */ /* 审核按钮 */
pickingAuditing(taskId) { pickingAuditing(taskId) {
this.includeCom = ''
this.auditingTaskId = taskId this.auditingTaskId = taskId
this.isView = false this.isView = false
this.pageContent = '领料任务审批' this.pageContent = '领料任务审批'
@ -47,6 +49,7 @@ export default {
}, },
/* 查看按钮 */ /* 查看按钮 */
pickingView(taskId) { pickingView(taskId) {
this.includeCom = 'Home'
this.auditingTaskId = taskId this.auditingTaskId = taskId
this.isView = true this.isView = true
this.pageContent = '领料审批详情' this.pageContent = '领料审批详情'

View File

@ -51,10 +51,23 @@
style="width: 240px" style="width: 240px"
></el-input> ></el-input>
</el-form-item> </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-form-item label="物品类型" prop="status">
<el-cascader <el-cascader
placeholder="请输入物品类型" placeholder="请输入物品类型"
:options="deviceTypeTree" :options="deviceTypeTreeNew"
:props="deviceTypeTreeProps" :props="deviceTypeTreeProps"
v-model="deviceType" v-model="deviceType"
@change="deviceTypeChange" @change="deviceTypeChange"
@ -466,8 +479,11 @@ export default {
}, },
companyId: '', companyId: '',
createBy: '', createBy: '',
userId: '',
isEdit: 'true', isEdit: 'true',
rowId: '', rowId: '',
selDeviceTypeChangeValue: '',
deviceTypeTreeNew: [],
} }
}, },
mounted() { mounted() {
@ -488,6 +504,7 @@ export default {
getInfo().then((res) => { getInfo().then((res) => {
this.companyId = res.user.companyId this.companyId = res.user.companyId
this.createBy = res.user.userName this.createBy = res.user.userName
this.userId = res.user.userId
}) })
}, },
computed: { computed: {
@ -722,6 +739,7 @@ export default {
} }
this.queryParams.createBy = this.user.name this.queryParams.createBy = this.user.name
this.queryParams.companyId = this.companyId this.queryParams.companyId = this.companyId
this.queryParams.userId = this.userId
this.queryParams.backApplyInfo = { this.queryParams.backApplyInfo = {
backPerson: this.queryParams.backPerson, backPerson: this.queryParams.backPerson,
phone: this.queryParams.phone, phone: this.queryParams.phone,
@ -733,6 +751,7 @@ export default {
let params = { let params = {
companyId: this.companyId, companyId: this.companyId,
createBy: this.createBy, createBy: this.createBy,
userId: this.userId,
id: this.rowId, id: this.rowId,
agreementId: this.queryParams.agreementId, agreementId: this.queryParams.agreementId,
backApplyInfo: this.queryParams.backApplyInfo, backApplyInfo: this.queryParams.backApplyInfo,
@ -754,6 +773,7 @@ export default {
let params = { let params = {
companyId: this.companyId, companyId: this.companyId,
createBy: this.createBy, createBy: this.createBy,
userId: this.userId,
agreementId: this.queryParams.agreementId, agreementId: this.queryParams.agreementId,
backApplyInfo: this.queryParams.backApplyInfo, backApplyInfo: this.queryParams.backApplyInfo,
backApplyDetails: backApplyDetails:
@ -894,6 +914,17 @@ export default {
template.useNum = node.data.useNum template.useNum = node.data.useNum
return template return template
}, },
//
selDeviceTypeChange(val) {
console.log(val, '设备类型选择-----')
console.log(this.deviceTypeTree, '树形数据源--')
this.deviceTypeTreeNew = this.deviceTypeTree.filter(
(e) => e.companyId == val,
)
},
}, },
} }
</script> </script>

View File

@ -285,7 +285,7 @@
size="medium" size="medium"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
v-if="scope.row.applyStatus == '0'" v-if="scope.row.taskStatus == '37'"
v-hasPermi="['return:auditing:auditing']" v-hasPermi="['return:auditing:auditing']"
@click="handleUpdate(scope.row, 'update')" @click="handleUpdate(scope.row, 'update')"
> >

View File

View File

@ -203,12 +203,17 @@
type="text" type="text"
icon="el-icon-edit-outline" icon="el-icon-edit-outline"
style="color: #e6a23c" style="color: #e6a23c"
v-if="row.taskTypeId == 29" v-if="
row.taskTypeId == 29 &&
userId === parseInt(row.createBy)
"
@click=" @click="
handleUrging( handleUrging(
row.taskTypeId, parseInt(row.taskTypeId), //
parseInt(row.companyId), //
row.taskEvent, //
parseInt(row.createBy), //
row.taskCode, row.taskCode,
row.taskEvent,
row.taskId, row.taskId,
) )
" "
@ -267,6 +272,22 @@
> >
</div> </div>
</el-dialog> </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> </div>
</template> </template>
@ -277,8 +298,13 @@ import {
getToPersonInfoAp, getToPersonInfoAp,
sendUrgingMessageApi, sendUrgingMessageApi,
} from '@/api/index' } from '@/api/index'
import DialogModel from '@/components/DialogModel'
export default { export default {
name: 'myIndex', name: 'myIndex',
components: {
DialogModel,
},
data() { data() {
return { return {
// //
@ -356,6 +382,16 @@ export default {
// //
bmNoticeInfoList: [], bmNoticeInfoList: [],
}, },
dialogConfig: {
outerWidth: '50%',
outerTitle: '催办人详情',
outerVisible: false,
},
userId: parseInt(sessionStorage.getItem('userId')),
deptId: parseInt(sessionStorage.getItem('deptId')),
toPersonInfoDetails: [],
} }
}, },
created() { 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({ const { data: res } = await getToPersonInfoAp(personParams)
taskStatus,
})
res.map((e) => { res.map((e) => {
this.toPersonInfo.push({ this.toPersonInfo.push({
noticeUser: e.userId, noticeUser: e.userId,
phone: e.phonenumber, phone: e.phonenumber,
modelName: '领料催办', modelName: '领料催办',
companyId: e.companyId, companyId: e.companyId,
v_name: e.nickName, v_name: e.userName,
}) })
}) })
@ -465,6 +513,31 @@ export default {
this.toPersonInfo = [] this.toPersonInfo = []
this.urgingDialogVisible = false 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> </script>

View File

@ -1,36 +1,44 @@
<template> <template>
<el-dialog <el-dialog
v-dialogDrag v-dialogDrag
v-loading.fullscreen.lock="fullscreenLoading" v-loading.fullscreen.lock="fullscreenLoading"
:before-close="cancel" :before-close="cancel"
:title="dialogTitle" :title="dialogTitle"
:visible.sync="dialogShowFlag" :visible.sync="dialogShowFlag"
append-to-body append-to-body
width="600px" width="600px"
> >
<div class="form_box_one" v-if="!isShow"> <div class="form_box_one" v-if="!isShow">
<el-form ref="dynamicValidateForm" :model="dynamicValidateForm" class="demo-dynamic" label-width="90px"> <el-form
<div class="bor_box"> ref="dynamicValidateForm"
<p class="form_box_title">编码管理设备</p> :model="dynamicValidateForm"
<div class="form_box_line"></div> class="demo-dynamic"
<div class="form_box_item"> label-width="90px"
<el-form-item label="报废原因:"> >
<el-input <div class="bor_box">
v-model="dynamicValidateForm.scrapReason" <p class="form_box_title">编码管理设备</p>
placeholder="请输入" <div class="form_box_line"></div>
size="small" <div class="form_box_item">
maxlength="50" <el-form-item label="报废原因:">
style="width: 350px" <el-input
></el-input> v-model="dynamicValidateForm.scrapReason"
</el-form-item> placeholder="请输入"
<el-form-item label="损坏原因:"> size="small"
<el-radio-group style="width: 350px" v-model="dynamicValidateForm.scrapType"> maxlength="50"
<el-radio :label="1">人为</el-radio> style="width: 350px"
<el-radio :label="0">自然</el-radio> ></el-input>
</el-radio-group> </el-form-item>
</el-form-item> <el-form-item label="损坏原因:">
<el-form-item label="损坏照片:"> <el-radio-group
<!-- <uploadImage 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" style="width: 250px"
:value="fileList" :value="fileList"
:limit="limit" :limit="limit"
@ -39,75 +47,87 @@
:isShowTip="isShowTip" :isShowTip="isShowTip"
@fileListChange="fileListChange" @fileListChange="fileListChange"
></uploadImage> --> ></uploadImage> -->
<upload <upload
style="width: 350px" style="width: 350px"
:file-list="fileList" :file-list="fileList"
:action-url="actionUrl" :action-url="actionUrl"
:limit="3" :limit="3"
:multiple="true" :multiple="true"
@remove="handleRemove" @remove="handleRemove"
@preview="handlePreview" @preview="handlePreview"
@before-remove="beforeRemove" @before-remove="beforeRemove"
@success="handleSuccess" @success="handleSuccess"
> >
<template> <template>
<el-row class="upload-tip"> <el-row class="upload-tip">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary"
</el-row> >点击上传</el-button
<el-row class="upload-tip"> >
<span class="tip-text">请上传jpgjpegpng格式的图片单张图片大小不可超过5M最多可上传3张</span> </el-row>
</el-row> <el-row class="upload-tip">
</template> <span class="tip-text"
</upload> >请上传jpgjpegpng格式的图片单张图片大小不可超过5M最多可上传3张</span
</el-form-item> >
</div> </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> </div>
</el-form> <div class="form_box_two" v-if="isShow">
<div slot="footer" class="dialog-footer"> <el-form
<el-button @click="cancel">取消</el-button> ref="dynamicValidateFormTwo"
<el-button type="primary" @click="submit">保存</el-button> :model="dynamicValidateFormTwo"
</div> class="demo-dynamic"
</div> label-width="100px"
<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>
<p class="form_box_title">数量管理设备</p> <div class="form_box_line"></div>
<div class="form_box_line"></div> <div class="form_box_item">
<div class="form_box_item"> <el-form-item
<el-form-item label="报废数量:"
label="报废数量:" prop="scrapNum"
prop="scrapNum" :rules="{
:rules="{ required: true,
required: true, validator: numberIntegerValidator,
validator: numberIntegerValidator, trigger: 'blur',
trigger: 'blur', }"
}" >
> <el-input
<el-input v-model="dynamicValidateFormTwo.scrapNum"
v-model="dynamicValidateFormTwo.scrapNum" placeholder="请输入"
placeholder="请输入" size="small"
size="small" maxlength="10"
maxlength="10" style="width: 350px"
style="width: 350px" ></el-input>
></el-input> </el-form-item>
</el-form-item> <el-form-item label="报废原因:">
<el-form-item label="报废原因:"> <el-input
<el-input v-model="dynamicValidateFormTwo.scrapReason"
v-model="dynamicValidateFormTwo.scrapReason" placeholder="请输入"
placeholder="请输入" size="small"
size="small" maxlength="50"
maxlength="50" style="width: 350px"
style="width: 350px" ></el-input>
></el-input> </el-form-item>
</el-form-item> <el-form-item label="损坏原因:">
<el-form-item label="损坏原因:"> <el-radio-group
<el-radio-group style="width: 350px" v-model="dynamicValidateFormTwo.scrapType"> style="width: 350px"
<el-radio :label="1">人为</el-radio> v-model="dynamicValidateFormTwo.scrapType"
<el-radio :label="0">自然</el-radio> >
</el-radio-group> <el-radio :label="1">人为</el-radio>
</el-form-item> <el-radio :label="0">自然</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="损坏照片:"> <el-form-item label="损坏照片:">
<!-- <uploadImage <!-- <uploadImage
style="width: 250px" style="width: 250px"
:value="fileList" :value="fileList"
:limit="limit" :limit="limit"
@ -116,368 +136,379 @@
:isShowTip="isShowTip" :isShowTip="isShowTip"
@fileListChange="fileListChange" @fileListChange="fileListChange"
></uploadImage> --> ></uploadImage> -->
<upload <upload
style="width: 350px" style="width: 350px"
:file-list="fileList" :file-list="fileList"
:action-url="actionUrl" :action-url="actionUrl"
:limit="3" :limit="3"
:multiple="true" :multiple="true"
@remove="handleRemove" @remove="handleRemove"
@preview="handlePreview" @preview="handlePreview"
@before-remove="beforeRemove" @before-remove="beforeRemove"
@success="handleSuccess" @success="handleSuccess"
> >
<template> <template>
<el-row class="upload-tip"> <el-row class="upload-tip">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary"
</el-row> >点击上传</el-button
<el-row class="upload-tip"> >
<span class="tip-text">请上传jpgjpegpng格式的图片单张图片大小不可超过5M最多可上传3张</span> </el-row>
</el-row> <el-row class="upload-tip">
</template> <span class="tip-text"
</upload> >请上传jpgjpegpng格式的图片单张图片大小不可超过5M最多可上传3张</span
</el-form-item> >
</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> </div>
</el-form> </el-dialog>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="submitTwo">保存</el-button>
</div>
</div>
</el-dialog>
</template> </template>
<script> <script>
import uploadImage from './uploadImage.vue' import uploadImage from './uploadImage.vue'
import upload from './upload.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' import { getInfo } from '@/api/login'
export default { export default {
components: { components: {
uploadImage, uploadImage,
upload, upload,
},
props: {
//
isShowFlag: {
type: Boolean,
default: false,
}, },
// props: {
priKey: { //
type: [String, Number], isShowFlag: {
default: '', type: Boolean,
default: false,
},
//
priKey: {
type: [String, Number],
default: '',
},
//
dialogTitle: {
type: String,
default: '',
},
rowObj: {
type: Object,
default: {},
},
}, },
// watch: {
dialogTitle: { isShowFlag(val) {
type: String, if (val) {
default: '', this.init()
}
},
}, },
rowObj: { computed: {
type: Object, dialogShowFlag: {
default: {}, get() {
return this.isShowFlag
},
set(v) {
this.$emit('update:isShowFlag', v)
},
},
}, },
}, data() {
watch: { return {
isShowFlag(val) { // actionUrl: process.env.VUE_APP_BASE_API + '/sgzb-system/sys/file/upload',
if (val) { actionUrl: process.env.VUE_APP_BASE_API + '/system/sys/file/upload',
this.init() // uploadTip: 'jpg/png500kb',
} fileIds: [],
}, fileList: [],
}, limit: 3,
computed: { fileSize: 5,
dialogShowFlag: { fileType: ['png', 'jpg', 'jpeg'],
get() { isShowTip: true,
return this.isShowFlag fullscreenLoading: false,
}, dynamicValidateForm: {},
set(v) { dynamicValidateFormTwo: {},
this.$emit('update:isShowFlag', v) taskId: '',
}, companyId: '',
}, isShow: true,
},
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/png500kb',
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
} }
})
}, },
submit() { mounted() {
this.$refs['dynamicValidateForm'].validate(valid => { this.$eventBus.$on('taskId', (taskId) => {
if (valid) { this.taskId = taskId
// })
let params = { getInfo().then((res) => {
taskId: this.rowObj.taskId, this.companyId = res.user.companyId
maId: this.rowObj.maId, })
typeId: this.rowObj.typeId, },
id: this.rowObj.id, methods: {
repairType: 3, handleRemove(file, fileList) {
companyId: this.companyId, this.fileList = fileList
scrapReason: this.dynamicValidateForm.scrapReason, console.log('fileListRemove', fileList)
scrapType: this.dynamicValidateForm.scrapType, fileList.map((item) => {
fileIds: this.fileIds.length > 0 ? this.fileIds : '', this.fileIds = fileList
scrapNum: 1, .map((item) => item.response.data.id)
} .join(',')
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 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 //--
} numberIntegerValidator(rule, value, callback) {
}) const reg = /^\+?[1-9][0-9]*$/
}, if (value && reg.test(value) && value <= this.rowObj.repairNum) {
submitTwo() { callback()
this.$refs['dynamicValidateFormTwo'].validate(valid => { } else {
if (valid) { callback(new Error('请输入大于0并且小于维修总量的正整数'))
// }
let params = { },
taskId: this.rowObj.taskId, getList() {
maId: this.rowObj.maId, let params = {
typeId: this.rowObj.typeId, taskId: this.taskId,
id: this.rowObj.id, }
companyId: this.companyId, this.loading = true
repairType: 3, getRepairMaTypeListApi(params).then((res) => {
companyId: this.companyId, if (res.code == 200) {
scrapReason: this.dynamicValidateFormTwo.scrapReason, this.repairList = res.rows
scrapType: this.dynamicValidateFormTwo.scrapType, this.total = res.total
fileIds: this.fileIds.length > 0 ? this.fileIds : '', this.loading = false
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() submit() {
this.fullscreenLoading = false 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> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.form_box_one { .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; display: flex;
flex-direction: column; flex-direction: column;
align-items: center;
justify-content: center;
}
.add_box { .form_box_title {
display: flex; display: flex;
justify-content: flex-end; flex-direction: row;
margin-right: 3%; 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 { .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; display: flex;
flex-direction: column; flex-direction: column;
align-items: center;
justify-content: center;
}
.add_box { .form_box_title {
display: flex; display: flex;
justify-content: flex-end; flex-direction: row;
margin-right: 3%; 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 { .dialog-footer {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
} }
.upload-tip { .upload-tip {
text-align: left; text-align: left;
.tip-text { .tip-text {
font-size: 13px; font-size: 13px;
color: red; color: red;
letter-spacing: 1px; letter-spacing: 1px;
} }
} }
</style> </style>

View File

@ -46,8 +46,8 @@ module.exports = {
// target: `http://10.40.92.51:28080`, //超 // target: `http://10.40.92.51:28080`, //超
// target: `http://10.40.92.81:8080`, //韩/ // target: `http://10.40.92.81:8080`, //韩/
// target: `http://10.40.92.74:8080`,//旭/ // target: `http://10.40.92.74:8080`,//旭/
target: `http://10.40.92.138:28080`, //帅 // target: `http://10.40.92.138:28080`, //帅
// target: `http://10.40.92.253:28080`, //福 target: `http://10.40.92.253:28080`, //福
//******** 注意事项 ********* */ //******** 注意事项 ********* */
//1.全局替换qrUrl二维码扫码提供的网址-发布服务器的地址target; //1.全局替换qrUrl二维码扫码提供的网址-发布服务器的地址target;