123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434 |
- <template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
- <div>
- <el-dialog
- :title="title"
- :close-on-click-modal="false"
- draggable
- width="1300px"
- @close="close"
- @keyup.enter.native=""
- v-model="visible">
- <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method === 'view'"
- label-width="160px" @submit.native.prevent>
- <el-divider content-position="left"><i class="el-icon-document"></i>
- 基本信息
- </el-divider>
- <el-row :gutter="15">
- <el-col :span="12">
- <el-form-item label="维护车辆" prop="driveNumber"
- :rules="[ {required: true, message:'维护车辆不能为空', trigger:'change'}]">
- <el-input @focus="openDriveInfo" placeholder="请填写维护车辆" :readonly="true" v-model="inputForm.driveNumber" clearable/>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="维护起止时间" prop="maintainDates"
- :rules="[
- {required: true, message:'维护时间不能为空', trigger:'change'}]">
- <el-date-picker
- v-model="inputForm.maintainDates"
- type="daterange"
- start-placeholder="请选择开始时间"
- end-placeholder="请选择结束时间"
- value-format="YYYY-MM-DD"
- @change="checkDate"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="维护类型" prop="driveMaintainType"
- :rules="[ {required: true, message:'维护类型不能为空', trigger:'blur'}]">
- <el-select style="width:100%;" v-model="inputForm.driveMaintainType" placeholder="维护类型" clearable>
- <el-option
- v-for="item in $dictUtils.getDictList('jy_drive_maintain_type')"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item label="备注" prop="remarks"
- :rules="[ ]">
- <el-input :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" type="textarea" placeholder="请输入说明" maxlength="500" style="width:100%" v-model="inputForm.remarks" show-word-limit></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
- <DriveInfoDia ref="driveInfoDia" @getDrive="getDrive"></DriveInfoDia>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
- <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
- </span>
- </template>
- </el-dialog>
- </div>
- </template>
- <script>
- import XEUtils from 'xe-utils'
- import DriveMaintainService from '@/api/jy/DriveMaintainService'
- import { ElDatePicker } from 'element-plus';
- import UpLoadComponent from '@/views/common/UpLoadComponent'
- import CommonApi from '@/api/cw/common/CommonApi'
- import DriveInfoDia from '../driveInfo/DriveInfoDia'
- export default {
- props: {
- businessId: {
- type: String,
- default: ''
- },
- formReadOnly: {
- type: Boolean,
- default: false
- },
- status: {
- type: String,
- default: ''
- }
- },
- data () {
- return {
- title: '',
- method: '',
- loading: false,
- visible: false,
- inputForm: {
- id: '',
- driveNumber:'',
- driveInfoId: '',
- startTime:'',
- endTime:'',
- remarks: '',
- driveMaintainType:'',
- files: [], // 附件信息
- procInsId: '',
- status:'',
- maintainDates:[],
- },
- baseKey: '',
- keyWatch: '',
- dateList:[],
- programRow:'',
- }
- },
- DriveMaintainService:null,
- commonApi: null,
- created () {
- this.driveMaintainService=new DriveMaintainService()
- this.commonApi = new CommonApi()
- },
- mounted () {
- },
- activated () {
- },
- components: {
- ElDatePicker,
- UpLoadComponent,
- DriveInfoDia,
- },
- computed: {
- bus: {
- get () {
- this.$refs.uploadComponent.setDividerName('附件')
- return this.businessId
- },
- set (val) {
- this.businessId = val
- }
- }
- },
- watch: {
- 'keyWatch': {
- handler (newVal) {
- console.log('几里路')
- if (this.bus) {
- if (this.bus !== 'false') {
- this.init('', this.bus)
- }
- } else {
- this.$nextTick(() => {
- this.$refs.inputForm.resetFields()
- })
- }
- }
- },
- 'loading': {
- handler (newVal) {
- this.$emit('changeLoading', newVal)
- this.$refs.uploadComponent.changeLoading(newVal)
- }
- }
- },
- methods: {
- getKeyWatch(keyWatch) {
- this.keyWatch = keyWatch
- },
- init(method, id) {
- this.method = method
- this.inputForm={
- id: '',
- driveNumber:'',
- driveInfoId: '',
- maintainDates:[],
- remarks: '',
- driveMaintainType:'',
- files: [], // 附件信息
- procInsId: '',
- status:'',
- }
- this.inputForm.id = id
- this.loading = false
- this.visible=true
- if (method === 'edit') {
- this.title = '修改车辆维护信息'
- } else if (method === 'view') {
- this.title = '查看车辆维护信息'
- }
- this.$nextTick(() => {
- this.$refs.inputForm.resetFields()
- this.loading = true
- this.$refs.uploadComponent.clearUpload()
- if (this.commonJS.isNotEmpty(this.inputForm.id)) {
- console.log('this.inputForm.id', this.inputForm.id)
- this.driveMaintainService.queryById(this.inputForm.id).then((data)=>{
- this.inputForm = this.recover(this.inputForm, data)
- this.inputForm.files=data.files
- console.log('s',this.inputForm)
- if (this.status === 'audit' || this.status === 'taskFormDetail') {
- method = 'view'
- }
- console.log('me',method)
- this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'driveMaintain',null,null,null,null,null)
- this.loading = false
- })
- }
- })
- },
- saveForm(callback) {
- this.doSubmit('save', callback)
- },
- startForm(callback) {
- this.loading = true
- if (this.commonJS.isNotEmpty(this.inputForm.id)) {
- this.driveMaintainService.queryById(this.inputForm.id).then((data) => {
- if (data.status !== '0' && data.status !== '1' && data.status !== '3') { // 审核状态不是“未发起”或“暂存”或“撤回”,就弹出提示
- this.loading = false
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
- throw new Error()
- } else {
- this.doSubmit('start', callback)
- }
- })
- } else {
- this.doSubmit('start', callback)
- }
- },
- async agreeForm(callback) {
- console.log('进入方法')
- this.loading = true
- await this.driveMaintainService.queryById(this.inputForm.id).then((data) => {
- if (data.status !== '2' ) { // status的值不等于“审核中”,就弹出提示
- this.loading = false
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
- throw new Error()
- } else {
- this.inputForm.status= '2'
- this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data)=>{
- if (this.commonJS.isNotEmpty(data)) {
- if (data === '总经理审核') {
- this.inputForm.status = '5'
- }
- }
- let param = {status: this.inputForm.status, id: this.inputForm.id}
- this.inputForm=JSON.stringify(this.inputForm)
- this.driveMaintainService.updateStatusById(param).then(() => {
- callback(data.businessTable, data.businessId, this.inputForm)
- this.loading = false
- }).catch(() => {
- this.loading = false
- })
- })
- }
- })
- },
- reapplyForm(callback) {
- this.loading = true
- this.driveMaintainService.queryById(this.inputForm.id).then((data) => {
- if (data.status !== '4') { // 审核状态不是“驳回”,就弹出提示
- this.loading = false
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
- throw new Error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
- } else {
- this.doSubmit('reapply', callback)
- }
- })
- },
- // 表单提交
- async doSubmit(status, callback) {
- this.loading = true
- console.log('5',this.inputForm)
- if (status === 'save') {
- // 暂存
- this.loading = true
- this.inputForm.status = '1'
- if (this.maintainDates !== undefined ||this.maintainDates !== null || this.maintainDates.length !== 0){
- this.inputForm.startTime=this.maintainDates[0]
- this.inputForm.endTime=this.maintainDates[1]
- }
- if (this.$refs.uploadComponent.checkProgress()) {
- this.loading = false
- return
- }
- this.inputForm.files = this.$refs.uploadComponent.getDataList()
- this.driveMaintainService.saveForm(this.inputForm).then((data) => {
- callback(data.businessTable, data.businessId, this.inputForm)
- this.loading = false
- }).catch(() => {
- this.loading = false
- })
- return
- } else if (status === 'start') {
- if (this.inputForm.maintainDates == undefined ||this.inputForm.maintainDates == null || this.inputForm.maintainDates.length <= 0 ) {
- this.$message.error('请选择维护时间')
- this.loading = false
- }
- if (this.commonJS.isEmpty(this.inputForm.driveNumber)){
- this.$message.error('请选择维护车辆')
- this.loading = false
- }
- if (this.commonJS.isEmpty(this.inputForm.driveMaintainType)){
- this.$message.error('请选择维护类型')
- this.loading = false
- }
- this.inputForm.startTime=this.inputForm.maintainDates[0]
- this.inputForm.endTime=this.inputForm.maintainDates[1]
- if (this.$refs.uploadComponent.checkProgress()) {
- this.loading = false
- return
- }
- this.inputForm.files = this.$refs.uploadComponent.getDataList()
- // 送审 待审核
- this.inputForm.status = '2'
- } else if (status === 'agree') {
- this.inputForm.status= '5'
- } else if (status === 'reapply') {
- this.inputForm.status = '2'
- }
- this.$refs['inputForm'].validate((valid) => {
- if (valid) {
- this.loading = true
- console.log('form',this.inputForm)
- this.inputForm.startTime=this.inputForm.maintainDates[0]
- this.inputForm.endTime=this.inputForm.maintainDates[1]
- this.inputForm.files = this.$refs.uploadComponent.getDataList()
- this.driveMaintainService.updateInfo(this.inputForm).then((data) => {
- this.visible = false
- this.$emit('refreshList')
- }).catch(() => {
- this.$refs.inputForm.resetFields()
- this.loading = false
- this.visible = false
- })
- } else {
- this.loading = false
- }
- })
- },
- close() {
- this.inputForm = {
- id:'',
- projectList:[],
- name:'',
- no:'',
- projectLeader:'',
- projectCreateDate:'',
- createById:'',
- createByName:'',
- createDate:'',
- remarks:'',
- files: [], // 附件信息
- types:[], //用印类型
- number:'', //用印份数
- projectId:'',
- }
- this.visible = false
- },
- async updateStatusById(type, callback) {
- this.loading = true
- if (type === 'reject' || type === 'reback') {
- this.driveMaintainService.queryById(this.inputForm.id).then((data) => {
- if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
- this.loading = false
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
- throw new Error()
- } else {
- // if (type === 'agree') {
- // // 同意
- // this.inputForm.status = '5'
- // }
- if (type === 'reject') {
- // 驳回
- this.inputForm.status = '4'
- }
- if (type === 'reback') {
- // 撤回
- this.inputForm.status = '3'
- }
- if (type === 'reject' || type === 'reback') {
- let param = {status: this.inputForm.status, id: this.inputForm.id}
- this.driveMaintainService.updateStatusById(param).then(() => {
- this.loading = false
- callback()
- })
- }
- }
- })
- } else if (type === 'hold') {
- this.driveMaintainService.queryById(this.inputForm.id).then((data) => {
- if (data.status !== '4') { // status的值不等于“驳回”就弹出提示
- this.loading = false
- this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
- throw new Error()
- } else {
- // 终止
- let param = {status: '1', id: this.inputForm.id}
- this.driveMaintainService.updateStatusById(param).then(() => {
- this.loading = false
- callback()
- })
- }
- })
- }
- },
- openDriveInfo() {
- console.log('23123123')
- this.$refs.driveInfoDia.init()
- },
- getDrive(rows) {
- console.log('1',rows)
- this.inputForm.driveInfoId=rows.id
- this.inputForm.driveNumber=rows.driveNumber
- },
- }
- }
- </script>
- <style scoped>
- /deep/ .el-input-number .el-input__inner {
- text-align: left;
- }
- /deep/ .vxe-footer--row .vxe-footer--column:nth-child(1) .vxe-cell--item {
- font-weight:700;
- }
- </style>
|