|
@@ -0,0 +1,381 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-button size="small" type="primary" @click="onShow">新 建</el-button>
|
|
|
+ <el-drawer
|
|
|
+ title="新建工作任务"
|
|
|
+ :visible.sync="drawer"
|
|
|
+ size="45%"
|
|
|
+ direction="rtl"
|
|
|
+ append-to-body
|
|
|
+ :show-close="false"
|
|
|
+ @close="onClose">
|
|
|
+ <div class="drawer__panel" style="margin-bottom: 0px;padding-bottom: 0px">
|
|
|
+ <el-row>
|
|
|
+ <el-form :model="form" :rules="rules" ref="formData" size="mini" label-position="right">
|
|
|
+ <el-col :span="20">
|
|
|
+ <el-form-item label="工作任务:" label-width="85px" prop="taskname">
|
|
|
+ <el-input v-model="form.taskname" autocomplete="off" placeholder="输入工作任务"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="顺序:" label-width="80px">
|
|
|
+ <el-input v-model="form.sequence" autocomplete="off" placeholder="输入顺序"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="关键任务:" label-width="85px">
|
|
|
+ <el-radio v-model="form.important" label="1">是</el-radio>
|
|
|
+ <el-radio v-model="form.important" label="0">否</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item >
|
|
|
+ <el-checkbox v-model="form.onparties">关联客户对象</el-checkbox>
|
|
|
+ <AssociateCustomerObject ref="onparties" :data="form" class="inline-16" style="margin-left: 10px" @selectObject="selectObject"></AssociateCustomerObject>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item >
|
|
|
+ <el-checkbox v-model="form.onstage" style="font-size: 14px">关联项目阶段</el-checkbox>
|
|
|
+ <AssociatedProjectPhases ref="onstage" :data="form" class="inline-16" style="margin-left: 10px" @selectStage="selectStage"></AssociatedProjectPhases>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div class="drawer__panel">
|
|
|
+ <el-row>
|
|
|
+ <el-form ref="form" size="mini" label-position="right">
|
|
|
+ <el-col :span="22">
|
|
|
+ <el-form-item label="评估项:" label-width="60px" >
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2">
|
|
|
+ <el-form-item style="float: right;width: 100%;">
|
|
|
+ <el-button size="small" type="primary" plain style="width: 100%" @click="addOptions">添加</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" >
|
|
|
+ <el-form-item style="float: right;width: 100%;text-align: center">
|
|
|
+ <el-table
|
|
|
+ :data="form.projtaskmag_options"
|
|
|
+ style="width: 100%">
|
|
|
+ <el-table-column
|
|
|
+ prop="optionname"
|
|
|
+ label="任务内容"
|
|
|
+ width="360">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.optionname" placeholder=""></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="remarks"
|
|
|
+ label="描述"
|
|
|
+ width="0">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.remarks" placeholder=""></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="score"
|
|
|
+ width="160"
|
|
|
+ label="独立项分值">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.score" placeholder=""></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="operation"
|
|
|
+ width="100"
|
|
|
+ label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" size="mini" :disabled="form.projtaskmag_options.length === 1">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div class="drawer__panel">
|
|
|
+ <el-row>
|
|
|
+ <el-form ref="form" size="mini" label-position="right">
|
|
|
+ <el-col :span="22">
|
|
|
+ <el-form-item label="关联信息:" label-width="75px" >
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" >
|
|
|
+ <el-form-item style="float: right;width: 100%;text-align: center">
|
|
|
+ <el-table
|
|
|
+ :data="associatedData"
|
|
|
+ border
|
|
|
+ style="width: 100%">
|
|
|
+ <el-table-column
|
|
|
+ v-if="form.onparties"
|
|
|
+ prop="optionname"
|
|
|
+ label="客户对象"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ v-if="form.onstage"
|
|
|
+ prop="remarks"
|
|
|
+ label="项目阶段"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div v-if="form.onparties">
|
|
|
+ <div v-for="(item,index) in form.stage">
|
|
|
+ <span>{{item}}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-else>
|
|
|
+ <span>{{scope.row}}</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ v-if="form.onparties || form.onstage"
|
|
|
+ prop="score"
|
|
|
+ label="分值">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div v-if="form.onparties">
|
|
|
+ <div v-for="(item,index) in form.parties">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row" placeholder=""></el-input>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-else-if="form.onstage">
|
|
|
+ <div v-for="(item,index) in form.stage">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row" placeholder=""></el-input>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div class="fixed__btn__panel">
|
|
|
+ <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
|
|
|
+ <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-drawer>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import AssociateCustomerObject from '@/HDrpManagement/projectTask/modules/AssociateCustomerObject'
|
|
|
+import AssociatedProjectPhases from '@/HDrpManagement/projectTask/modules/AssociatedProjectStage'
|
|
|
+export default {
|
|
|
+ name: "add",
|
|
|
+ components:{AssociateCustomerObject,AssociatedProjectPhases},
|
|
|
+ data(){
|
|
|
+ return {
|
|
|
+ drawer:false,
|
|
|
+ input:'',
|
|
|
+ associatedData:[],
|
|
|
+ form:{
|
|
|
+ "sa_projtaskmagid": 0,
|
|
|
+ "taskname": "",
|
|
|
+ "sequence": 0,
|
|
|
+ "important": '0',
|
|
|
+ "onparties": false,
|
|
|
+ "onstage": false,
|
|
|
+ "parties": [],
|
|
|
+ "stage": [],
|
|
|
+ "projtaskmag_options": [
|
|
|
+ {
|
|
|
+ "sa_projtaskmag_optionsid": 0,
|
|
|
+ "optionname": "",
|
|
|
+ "remarks": "",
|
|
|
+ "score": 0,
|
|
|
+ "projtaskmag_optionscore": [
|
|
|
+ {
|
|
|
+ "sa_projtaskmag_optionscoreid":0,
|
|
|
+ "partiestype": "",
|
|
|
+ "sa_projstagemagid": "",
|
|
|
+ "score": 0
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ rules:{
|
|
|
+ taskname: [
|
|
|
+ { required: true, message: '请输入工作任务', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ onShow(){
|
|
|
+ this.drawer = true
|
|
|
+ },
|
|
|
+ selectObject(val){
|
|
|
+ this.form.parties = val
|
|
|
+ if (this.form.onparties && this.form.onstage){
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ }else if(this.form.onparties){
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ }else if(this.form.onstage){
|
|
|
+ this.associatedData = this.form.stage
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectStage(val){
|
|
|
+ this.form.stage = val
|
|
|
+ if (this.form.onparties && this.form.onstage){
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ }else if(this.form.onparties){
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ }else if(this.form.onstage){
|
|
|
+ this.associatedData = this.form.stage
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onSubmit(){
|
|
|
+ if (this.form.onstage){
|
|
|
+ this.form.onstage = 1
|
|
|
+ }else {
|
|
|
+ this.form.onstage = 0
|
|
|
+ }
|
|
|
+ if (this.form.onparties){
|
|
|
+ this.form.onparties = 1
|
|
|
+ }else {
|
|
|
+ this.form.onparties = 0
|
|
|
+ }
|
|
|
+ console.log(this.form)
|
|
|
+ /*this.$refs.formData.validate(async(valid)=>{
|
|
|
+ if (!valid) return false
|
|
|
+ const res = await this.$api.requested({
|
|
|
+ "id": "20221128144204",
|
|
|
+ "content": this.form
|
|
|
+ })
|
|
|
+ this.tool.showMessage(res,()=>{
|
|
|
+ this.drawer = false
|
|
|
+ this.$refs.formData.resetFields()
|
|
|
+ this.form = {
|
|
|
+ "sa_projtaskmagid": 0,
|
|
|
+ "taskname": "",
|
|
|
+ "sequence": 0,
|
|
|
+ "important": '0',
|
|
|
+ "onparties": false,
|
|
|
+ "onstage": false,
|
|
|
+ "parties": [],
|
|
|
+ "stage": [],
|
|
|
+ "projtaskmag_options": [
|
|
|
+ {
|
|
|
+ "sa_projtaskmag_optionsid": 0,
|
|
|
+ "optionname": "",
|
|
|
+ "remarks": "",
|
|
|
+ "score": "",
|
|
|
+ "projtaskmag_optionscore": [
|
|
|
+ {
|
|
|
+ "sa_projtaskmag_optionscoreid":0,
|
|
|
+ "partiestype": "",
|
|
|
+ "sa_projstagemagid": '',
|
|
|
+ "score": ''
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ this.$emit("onSuccess")
|
|
|
+ })
|
|
|
+ })*/
|
|
|
+ },
|
|
|
+ addOptions(){
|
|
|
+ console.log(this.form.projtaskmag_options)
|
|
|
+ this.form.projtaskmag_options.push({
|
|
|
+ "sa_projtaskmag_optionsid": 0,
|
|
|
+ "optionname": "",
|
|
|
+ "remarks": "",
|
|
|
+ "score": 0,
|
|
|
+ "projtaskmag_optionscore": [
|
|
|
+ {
|
|
|
+ "sa_projtaskmag_optionscoreid":0,
|
|
|
+ "partiestype": "",
|
|
|
+ "sa_projstagemagid": '',
|
|
|
+ "score": ''
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onClose(){
|
|
|
+ this.$refs.formData.resetFields()
|
|
|
+ this.form = {
|
|
|
+ "sa_projtaskmagid": 0,
|
|
|
+ "taskname": "",
|
|
|
+ "sequence": 0,
|
|
|
+ "important": '0',
|
|
|
+ "onparties": false,
|
|
|
+ "onstage": false,
|
|
|
+ "parties": [],
|
|
|
+ "stage": [],
|
|
|
+ "projtaskmag_options": [
|
|
|
+ {
|
|
|
+ "sa_projtaskmag_optionsid": 0,
|
|
|
+ "optionname": "",
|
|
|
+ "remarks": "",
|
|
|
+ "score": "",
|
|
|
+ "projtaskmag_optionscore": [
|
|
|
+ {
|
|
|
+ "sa_projtaskmag_optionscoreid":0,
|
|
|
+ "partiestype": "",
|
|
|
+ "sa_projstagemagid": '',
|
|
|
+ "score": ''
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ if (this.form.onparties && this.form.onstage){
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ }else if(this.form.onparties){
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ }else if(this.form.onstage){
|
|
|
+ this.associatedData = this.form.stage
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch:{
|
|
|
+ "form.onparties":function (val){
|
|
|
+ if (!val){
|
|
|
+ this.form.parties = []
|
|
|
+ this.associatedData = this.form.stage
|
|
|
+ }else if (val && this.form.onstage){
|
|
|
+ console.log(this.form)
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ this.$refs.onparties.drawer = true
|
|
|
+ }else if (val){
|
|
|
+ this.$refs.onparties.drawer = true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "form.onstage":function (val){
|
|
|
+ if (!val){
|
|
|
+ this.form.stage = []
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ }else if (val && this.form.onparties){
|
|
|
+ this.associatedData = this.form.parties
|
|
|
+ this.$refs.onstage.drawer = true
|
|
|
+ }else if (val){
|
|
|
+ this.$refs.onstage.drawer = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|