|
@@ -4,18 +4,18 @@
|
|
<div class="flex-1 text-center text-[24px] font-bold">工作重点填写</div>
|
|
<div class="flex-1 text-center text-[24px] font-bold">工作重点填写</div>
|
|
</template>
|
|
</template>
|
|
<el-form ref="baseFormRef" :model="baseForm" :rules="baseFormRules" label-position="top" label-width="auto" size="large">
|
|
<el-form ref="baseFormRef" :model="baseForm" :rules="baseFormRules" label-position="top" label-width="auto" size="large">
|
|
- <el-form-item label="选择项目阶段:" prop="key1">
|
|
|
|
- <el-select v-model="baseForm.key1" placeholder="请选择">
|
|
|
|
|
|
+ <el-form-item label="选择项目阶段:" prop="workFocusStage">
|
|
|
|
+ <el-select v-model="baseForm.workFocusStage" placeholder="请选择">
|
|
<el-option v-for="item in projectStage" :key="item.value" :label="item.label" :value="item.value" />
|
|
<el-option v-for="item in projectStage" :key="item.value" :label="item.label" :value="item.value" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="目标任务:" prop="key2">
|
|
|
|
- <el-input v-model="baseForm.key2" placeholder="请输入" clearable type="textarea" />
|
|
|
|
|
|
+ <el-form-item label="目标任务:" prop="targetPlan">
|
|
|
|
+ <el-input v-model="baseForm.targetPlan" placeholder="请输入" clearable type="textarea" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
- <template v-for="(item, index) in baseForm.gistList" :key="index">
|
|
|
|
|
|
+ <template v-for="(item, index) in workFocusEntityList" :key="index">
|
|
<hc-card-item class="gist-detail">
|
|
<hc-card-item class="gist-detail">
|
|
- <div class="hc-form-gist-action hc-flex">
|
|
|
|
|
|
+ <div v-if="!formInfo.id" class="hc-form-gist-action hc-flex">
|
|
<div class="add hc-flex-center h-[24px] w-[24px]" @click="addGistList">
|
|
<div class="add hc-flex-center h-[24px] w-[24px]" @click="addGistList">
|
|
<hc-icon name="add" fill />
|
|
<hc-icon name="add" fill />
|
|
</div>
|
|
</div>
|
|
@@ -24,29 +24,29 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<el-form :ref="(el) => setGistRefs(el, index)" :model="item" :rules="gistFormRules" label-position="left" label-width="auto" size="large">
|
|
<el-form :ref="(el) => setGistRefs(el, index)" :model="item" :rules="gistFormRules" label-position="left" label-width="auto" size="large">
|
|
- <el-form-item label="选择年份:" prop="key1">
|
|
|
|
- <hc-date-year v-model="item.key1" v-model:end="item.key1" />
|
|
|
|
|
|
+ <el-form-item label="选择年份:" prop="startYear">
|
|
|
|
+ <hc-date-year v-model="item.startYear" v-model:end="item.endYear" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="工作任务:" prop="key3">
|
|
|
|
- <el-input v-model="item.key3" placeholder="请输入" clearable type="textarea" />
|
|
|
|
|
|
+ <el-form-item label="工作任务:" prop="workPlan">
|
|
|
|
+ <el-input v-model="item.workPlan" placeholder="请输入" clearable type="textarea" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="责任单位:" prop="key4">
|
|
|
|
- <el-input v-model="item.key4" placeholder="请输入" clearable />
|
|
|
|
|
|
+ <el-form-item label="责任单位:" prop="dutyUnit">
|
|
|
|
+ <el-input v-model="item.dutyUnit" placeholder="请输入" clearable />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</hc-card-item>
|
|
</hc-card-item>
|
|
</template>
|
|
</template>
|
|
<template #action>
|
|
<template #action>
|
|
<el-button v-if="formInfo.id" type="info" @click="cancelClick">取消</el-button>
|
|
<el-button v-if="formInfo.id" type="info" @click="cancelClick">取消</el-button>
|
|
- <el-button v-if="!formInfo.id" color="#20C98B" type="primary" class="text-white" @click="createClick">创建</el-button>
|
|
|
|
- <el-button type="warning" @click="saveClick">保存</el-button>
|
|
|
|
|
|
+ <el-button v-if="!formInfo.id" color="#20C98B" type="primary" class="text-white" @click="saveClick">创建工作要点</el-button>
|
|
|
|
+ <el-button v-else type="warning" @click="saveClick">保存</el-button>
|
|
</template>
|
|
</template>
|
|
</hc-card>
|
|
</hc-card>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
import { onMounted, ref, watch } from 'vue'
|
|
import { onMounted, ref, watch } from 'vue'
|
|
-import { deepClone, getArrValue, getRandom, isNullES } from 'js-fast-way'
|
|
|
|
|
|
+import { deepClone, getArrValue, getRandom } from 'js-fast-way'
|
|
import { getDictionaryData } from '~src/utils/tools'
|
|
import { getDictionaryData } from '~src/utils/tools'
|
|
import mainApi from '~api/project/gist'
|
|
import mainApi from '~api/project/gist'
|
|
|
|
|
|
@@ -78,24 +78,24 @@ const getDataApi = async () => {
|
|
projectStage.value = await getDictionaryData('projectStage', true)
|
|
projectStage.value = await getDictionaryData('projectStage', true)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//基础表单
|
|
const baseFormRef = ref(null)
|
|
const baseFormRef = ref(null)
|
|
-const baseForm = ref({
|
|
|
|
- key1:'', key2: '',
|
|
|
|
- gistList: [{ key3: '111' }],
|
|
|
|
-})
|
|
|
|
|
|
+const baseForm = ref({ workFocusStage:null, targetPlan: '' })
|
|
const baseFormRules = {
|
|
const baseFormRules = {
|
|
- key1: {
|
|
|
|
|
|
+ workFocusStage: {
|
|
required: true,
|
|
required: true,
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
message: '请选择项目阶段',
|
|
message: '请选择项目阶段',
|
|
},
|
|
},
|
|
- key2: {
|
|
|
|
|
|
+ targetPlan: {
|
|
required: true,
|
|
required: true,
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
message: '请输入目标任务',
|
|
message: '请输入目标任务',
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//任务列表表单
|
|
|
|
+const workFocusEntityList = ref([{}])
|
|
//处理ref
|
|
//处理ref
|
|
const gistRefs = ref([])
|
|
const gistRefs = ref([])
|
|
const setGistRefs = (el, index) => {
|
|
const setGistRefs = (el, index) => {
|
|
@@ -107,49 +107,51 @@ const setGistRefs = (el, index) => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+//任务列表表单
|
|
const gistFormRules = {
|
|
const gistFormRules = {
|
|
- key1: {
|
|
|
|
|
|
+ startYear: {
|
|
required: true,
|
|
required: true,
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
message: '请选择年份',
|
|
message: '请选择年份',
|
|
},
|
|
},
|
|
|
|
+ workPlan: {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ message: '请填写工作任务',
|
|
|
|
+ },
|
|
|
|
+ dutyUnit: {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ message: '请填写责任单位',
|
|
|
|
+ },
|
|
}
|
|
}
|
|
|
|
|
|
//新增工作重点
|
|
//新增工作重点
|
|
const addGistList = () => {
|
|
const addGistList = () => {
|
|
- const list = getArrValue(baseForm.value.gistList)
|
|
|
|
|
|
+ const list = getArrValue(workFocusEntityList.value)
|
|
list.push({ id: getRandom() })
|
|
list.push({ id: getRandom() })
|
|
}
|
|
}
|
|
|
|
|
|
//删除工作重点
|
|
//删除工作重点
|
|
const delGistList = (index) => {
|
|
const delGistList = (index) => {
|
|
- const form = deepClone(baseForm.value)
|
|
|
|
- const list = getArrValue(form.gistList)
|
|
|
|
|
|
+ const list = deepClone(workFocusEntityList.value)
|
|
if (list.length <= 1) {
|
|
if (list.length <= 1) {
|
|
window.$message.warning('至少需要保留一个任务')
|
|
window.$message.warning('至少需要保留一个任务')
|
|
return
|
|
return
|
|
}
|
|
}
|
|
list.splice(index, 1)
|
|
list.splice(index, 1)
|
|
- baseForm.value = form
|
|
|
|
|
|
+ workFocusEntityList.value = list
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
//取消
|
|
//取消
|
|
const cancelClick = () => {
|
|
const cancelClick = () => {
|
|
emit('back')
|
|
emit('back')
|
|
}
|
|
}
|
|
|
|
|
|
-//创建
|
|
|
|
-const createClick = () => {
|
|
|
|
- const form = formInfo.value
|
|
|
|
- if (isNullES(form.id)) cancelClick()
|
|
|
|
- console.log('创建')
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//保存
|
|
|
|
-const saveClick = () => {
|
|
|
|
- const form = formInfo.value
|
|
|
|
- if (isNullES(form.id)) cancelClick()
|
|
|
|
|
|
+//创建 保存
|
|
|
|
+const saveClick = async () => {
|
|
|
|
+ const form = baseForm.value
|
|
|
|
+ console.log(form)
|
|
console.log('保存')
|
|
console.log('保存')
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|