Files
foton-laws-system-front/src/pages/processCenter/pages/createProcess/components/bzcg/step2.vue
T
2021-05-25 20:02:41 +08:00

370 lines
10 KiB
Vue

<!-- 标准采购申请流程--采购员审批 -->
<template>
<div class="step1">
<ProcessHeader toggle>
<template slot="proName">标准采购申请流程</template>
<template slot="proNode">高级经理审批</template>
</ProcessHeader>
<ProcessBaseInfo toggle>
<el-form
ref="baseForm"
:model="prcForm"
inline
class="label-input-form"
>
<el-form-item label="流程编号" class="search-item">
<el-input v-model="prcForm.prcNum" disabled></el-input>
</el-form-item>
<el-form-item label="流程名称" class="search-item">
<el-input v-model="prcForm.prcName" disabled></el-input>
</el-form-item>
<el-form-item
label="截止时间"
prop="prcDeadline"
class="search-item"
>
<el-date-picker
disabled
v-model="prcForm.overTime"
placeholder=""
clearable
></el-date-picker>
</el-form-item>
</el-form>
</ProcessBaseInfo>
<div class="content">
<div class="detail-table-conent">
<el-table
:data="tableData"
border
style="width: 100%"
:header-cell-style="{
background: '#e8e8e8',
color: '#333333',
fontSize: '16px',
fontWeight: 'bold',
height: '48px',
}"
:height="tableHeight"
:row-class-name="tableRowClassName"
>
<el-table-column label="序号" type="index" align="center" width="50">
</el-table-column>
<el-table-column
label="标准号"
prop="standNum"
align="center"
width="130"
show-overflow-tooltip
>
</el-table-column>
<el-table-column label="标准名称" prop="standName" align="center" show-overflow-tooltip>
</el-table-column>
<el-table-column
label="对比结果"
prop="itemRes"
align="center"
width="140"
>
<template slot-scope="scope">
<div>{{ scope.row.itemRes === '1' ? '有' : (scope.row.itemRes === '2' ? '无' : '') }}</div>
</template>
</el-table-column>
<el-table-column
label="费用来源"
prop="itemCost"
align="center"
width="140"
>
<template slot-scope="scope">
<div>{{ scope.row.itemCost === '1' ? '项目经费' : (scope.row.itemCost === '2' ? '标准费用' : '') }}</div>
</template>
</el-table-column>
<el-table-column
label="项目代号"
prop="itemCode"
align="center"
width="140"
>
</el-table-column>
<el-table-column label="备注" prop="itemRem" align="center">
</el-table-column>
</el-table>
</div>
<div class="feedBack">
<el-form label-width="80px">
<el-form-item label="反馈意见">
<el-select
v-model="feedback"
placeholder="是否同意"
size="mini"
class="bead"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="意见理由">
<el-input
type="textarea"
:rows="3"
v-model="textarea"
placeholder="请输入"
resize="none"
class="text"
></el-input>
</el-form-item>
</el-form>
</div>
</div>
<ProcessFooter
show-save
show-submit
show-entrust
:saveLoading="saveLoading"
:submitLoading="submitLoading"
@entrust="handleEntrust"
@save="handleSave"
@submit="handleSubmit"
/>
<!-- 组织机构树 -->
<ProcessChooseTree
:visible.sync="visibleTree"
show-user
:dept-select="false"
@dblClick="handleDblClick"
></ProcessChooseTree>
</div>
</template>
<script>
import ProcessChooseTree from 'process/components/ProcessChooseTree'
import ProcessHeader from "process/components/ProcessHeader";
import ProcessBaseInfo from "process/components/ProcessBaseInfo";
import ProcessFooter from "process/components/ProcessFooter";
import ProcessMixin from "process/components/ProcessMixin";
import {bzcgDetail,saveCgSq,changeAssigneeNew} from 'api/process'
export default {
name: "step2",
mixins: [ProcessMixin],
components: {
ProcessHeader,
ProcessBaseInfo,
ProcessFooter,
ProcessChooseTree
},
data() {
return {
res: {},
saveLoading: false,
submitLoading: false,
remarks: [],
visibleTree: false,
feedback: "",
textarea: "",
tableHeight: null,
options: [
{
value: '0',
label: '同意'
},
{
value: '1',
label: '不同意'
}
],
prcForm: {},
tableData: [],
};
},
methods: {
tableRowClassName({row, rowIndex}) {
if (row.itemRes === '1') {
return 'tableHide'
}
},
// 请求数据
getData () {
return new Promise((resolve, reject) => {
bzcgDetail({
taskIds: this.$route.query.taskIds
}).then(res => {
if (res) {
this.tableData = res.dicTypeList
this.remarks = res.remarks
this.feedback = res.feedback
this.textarea = res.textarea
this.res = res
resolve()
}
}).catch(e => {})
})
},
/**
* @description: 保存
* @date: 2020-12-01 10:26:53
*/
handleSave() {
if (this.tableData.length > 0) {
let _formData = new FormData()
_formData.append('taskIds', this.$store.getters.getHandleInfo.taskIds)
// _formData.append('pId', this.$store.getters.getHandleInfo.prcId)
_formData.append('prcType', '9')
_formData.append('json', JSON.stringify({
prcForm: this.prcForm,
dicTypeList: this.tableData,
feedback: this.feedback,
textarea: this.textarea,
bzcgyUserId: this.res.bzcgyUserId,
fqUserId: this.res.fqUserId,
manageId: this.res.manageId,
prcCreateUserName: this.res.prcCreateUserName,
prcDeadline: this.res.prcDeadline,
remarks: this.res.remarks,
taskId: this.res.taskId
}))
this.submitLoading = true
this.saveLoading = true
saveCgSq(_formData).then(res => {
this.$message.success('保存成功')
// this.$router.push('/processCenter')
this.submitLoading = false
this.saveLoading = false
}).catch(e => {
this.submitLoading = false
this.saveLoading = false
})
} else {
this.$message.warning('请选择标准')
}
},
// 委托
handleEntrust () {
this.visibleTree = true
},
handleDblClick (treeNode) {
let userId = this.$store.getters.userInfo.usid || this.$store.getters.userInfo.userId
if (treeNode.id === userId) {
this.$message.warning('不可委托给自己')
} else {
changeAssigneeNew({
taskId: this.$store.getters.getHandleInfo.taskIds, // 任务id
assignee: treeNode.id, // 被委托人
userId: this.$store.getters.userInfo.userId, // 委托人
pId: this.$store.getters.getHandleInfo.prcId // 流程实例
}).then(res => {
if (res.success) {
this.$message.success('委托成功')
this.$router.push('/processCenter')
this.visibleTree = false
} else {
this.$message.warning(res.message)
}
})
}
},
/**
* @description: 提交
* @date: 2020-12-01 10:27:11
*/
handleSubmit() {
if (this.feedback === '') {
this.$message.error('请审批')
return
}
let json = {}
json.dicTypeList = this.tableData
json.opinion = this.feedback
if (this.feedback === '1') {
this.remarks.push({
approvalUserName: this.$store.getters.userInfo.uName,
auditOpinions: '1',
auditOpinionsText: this.textarea,
approvalNode: '高级经理审批',
approvalTime: '',
})
}
json.remarks = this.remarks
json.prcDeadline = this.prcForm.overTime
json.manageName = this.$store.getters.userInfo.uName
json.manageId = this.$store.getters.userInfo.userId
json = JSON.stringify(json)
this.submitLoading = true
this.saveLoading = true
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.$route.query.taskIds,
userId : this.$store.getters.userInfo.userId,
json: json
}, {
_this: this
}, res => {
if (res.code === 200) {
this.$message({
message: '提交成功',
type: 'success'
})
this.$router.push({
name: 'processCenter'
})
} else {
this.$message({
message: '提交失败',
type: 'error'
})
}
this.submitLoading = false
this.saveLoading = false
}, e => {
})
},
},
computed: {},
watch: {},
mounted() {
this.prcForm = this.$store.getters.getHandleInfo
this.tableHeight = $(".detail-table-conent").height();
window.onresize = () => {
this.tableHeight = $(".detail-table-conent").height();
};
this.getData()
},
};
</script>
<style lang="less" scoped>
.step1 {
padding: 15px;
background: #fff;
position: relative;
height: 100%;
display: flex;
flex-direction: column;
/deep/.tableHide {
display: none;
}
.content {
flex: auto;
overflow: hidden;
display: flex;
flex-direction: column;
.detail-table-conent {
flex: auto;
overflow: hidden;
}
.text {
display: inline;
/deep/.el-textarea__inner {
border-radius:20px;
width: 580px;
}
}
}
}
</style>