|
@@ -5,7 +5,7 @@
|
|
|
<ion-buttons slot="start">
|
|
|
<ion-icon :icon="arrowBackOutline" @click="onCancel"></ion-icon>
|
|
|
</ion-buttons>
|
|
|
- <ion-title>工作任务录入</ion-title>
|
|
|
+ <ion-title>工作任务详情</ion-title>
|
|
|
</ion-toolbar>
|
|
|
</ion-header>
|
|
|
<ion-content>
|
|
@@ -18,78 +18,73 @@
|
|
|
</ion-item>
|
|
|
<ion-list>
|
|
|
<ion-label class="title-item">任务名称<span class="danger">*</span></ion-label>
|
|
|
- <ion-item :class="[workTaskValid.dataModel.doTaskName.$error?'ion-invalid':'ion-valid']" style="margin-bottom: 10px;">
|
|
|
- <ion-input name="doTaskName" id="doTaskName" style="text-align: left;" class="custom"
|
|
|
- placeholder="请输入任务名称" v-model="dataModel.doTaskName" ></ion-input>
|
|
|
- <ion-note slot="error">任务名称不能为空</ion-note>
|
|
|
+ <ion-item> <!--:class="[workTaskValid.dataModel.doTaskName.$error?'ion-invalid':'ion-valid']"-->
|
|
|
+<!-- <ion-input name="doTaskName" id="doTaskName" style="text-align: left;" class="custom"
|
|
|
+ placeholder="请输入任务名称" v-model="dataModel.doTaskName" ></ion-input>-->
|
|
|
+<!-- <ion-note slot="error">任务名称不能为空</ion-note>-->
|
|
|
+ {{dataModel.doTaskName}}
|
|
|
</ion-item>
|
|
|
<ion-label class="title-item">指派人<span class="danger">*</span></ion-label>
|
|
|
- <ion-item-group style="overflow: hidden;" >
|
|
|
- <ion-item style="width:50%;text-align: center;float:left;" v-for="(it,key) in allTaskUserList" :key="key">
|
|
|
- <ion-checkbox justify="start" labelPlacement="end" style="width:50%;" name="taskUserItem"
|
|
|
- :value="it.siteUserID" :checked="it.checked" @ionChange="selectTaskUser(it)">
|
|
|
- {{ it.text }}
|
|
|
- </ion-checkbox>
|
|
|
- </ion-item>
|
|
|
- </ion-item-group>
|
|
|
+ <ion-item>
|
|
|
+ {{curTaskUserStr}}
|
|
|
+ </ion-item>
|
|
|
<ion-label class="title-item">完成时间<span class="danger">*</span></ion-label>
|
|
|
- <ion-item :class="[workTaskValid.dataModel.finishTime.$error?'ion-invalid':'ion-valid']">
|
|
|
- <ion-datetime-button datetime="finishTime"></ion-datetime-button>
|
|
|
+ <ion-item><!--:class="[workTaskValid.dataModel.finishTime.$error?'ion-invalid':'ion-valid']"-->
|
|
|
+<!-- <ion-datetime-button datetime="finishTime"></ion-datetime-button>
|
|
|
<ion-modal :keep-contents-mounted="true">
|
|
|
<ion-datetime id="finishTime" placeholder="完成时间"
|
|
|
v-model="dataModel.finishTime" :prefer-wheel="true"
|
|
|
dataformatas="YYYY-MM-DD" presentation="date" cancel-text="取消" done-text="确定"
|
|
|
:show-default-buttons="true">
|
|
|
</ion-datetime>
|
|
|
- </ion-modal>
|
|
|
- <ion-note slot="error">完成时间不能为空</ion-note>
|
|
|
+ </ion-modal>-->
|
|
|
+<!-- <ion-note slot="error">完成时间不能为空</ion-note>-->
|
|
|
+ {{ dayjs(dataModel.finishTime).format("YYYY-MM-DD")}}
|
|
|
</ion-item>
|
|
|
<ion-label class="title-item">任务类型<span class="danger">*</span></ion-label>
|
|
|
- <ion-item :class="[workTaskValid.dataModel.workTypeID.$error?'ion-invalid':'ion-valid']" style="margin-bottom: 10px;">
|
|
|
- <ion-select name="workTypeID" id="workTypeID" okText="确定" cancelText="取消" v-model="dataModel.workTypeID"
|
|
|
+ <ion-item>
|
|
|
+ <!--:class="[workTaskValid.dataModel.workTypeID.$error?'ion-invalid':'ion-valid']" style="margin-bottom: 10px;">-->
|
|
|
+<!-- <ion-select name="workTypeID" id="workTypeID" okText="确定" cancelText="取消" v-model="dataModel.workTypeID"
|
|
|
interface="action-sheet" placeholder="请选择任务类型" style="width:100%;text-align: left;" >
|
|
|
<ion-select-option v-for="(it,key) in taskTypeList" :key="key" :value="it.value" >
|
|
|
{{ it.name }}
|
|
|
</ion-select-option>
|
|
|
- </ion-select>
|
|
|
- <ion-note slot="error">任务类型不能为空</ion-note>
|
|
|
+ </ion-select>-->
|
|
|
+<!-- <ion-note slot="error">任务类型不能为空</ion-note>-->
|
|
|
+ {{dataModel.workTypeName}}
|
|
|
</ion-item>
|
|
|
<ion-label class="title-item">任务内容<span class="danger">*</span></ion-label>
|
|
|
- <ion-item :class="[workTaskValid.dataModel.content.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item> <!--:class="[workTaskValid.dataModel.content.$error?'ion-invalid':'ion-valid']">-->
|
|
|
<ion-textarea name="content" id="content" v-model="dataModel.content" label-placement="stacked"
|
|
|
placeholder="请输入工作内容" rows="8" class="custom"></ion-textarea>
|
|
|
- <ion-note slot="error">任务内容不能为空</ion-note>
|
|
|
+<!-- <ion-note slot="error">任务内容不能为空</ion-note>-->
|
|
|
</ion-item>
|
|
|
</ion-list>
|
|
|
</form>
|
|
|
|
|
|
</ion-content>
|
|
|
- <ion-footer>
|
|
|
+<!-- <ion-footer>
|
|
|
<ion-button shape="round" expand="block" @click="onSave">提交</ion-button>
|
|
|
- </ion-footer>
|
|
|
+ </ion-footer>-->
|
|
|
</ion-page>
|
|
|
</template>
|
|
|
<script lang="ts">
|
|
|
-import {computed, defineComponent, reactive, ref, toRefs} from "vue";
|
|
|
+import {defineComponent, reactive, ref, toRefs} from "vue";
|
|
|
import {getSysDictionaryList} from '@/api/system/dictionary';
|
|
|
-import {getWorkTaskByID,saveWorkTask,getWorkUserList} from '@/api/workTask';
|
|
|
-import {getSiteUserDataList} from '@/api/siteUserInfo';
|
|
|
+import {getWorkTaskByID,getWorkUserList} from '@/api/workTask';
|
|
|
import {useRoute, useRouter} from "vue-router";
|
|
|
-import {alertController, onIonViewDidEnter} from "@ionic/vue";
|
|
|
+import {onIonViewDidEnter} from "@ionic/vue";
|
|
|
import {arrowBackOutline} from 'ionicons/icons';
|
|
|
-import {required} from "@vuelidate/validators";
|
|
|
-import {useVuelidate} from "@vuelidate/core";
|
|
|
-
|
|
|
+import dayjs from "dayjs";
|
|
|
|
|
|
-interface CurDataProps{
|
|
|
+interface SiteUserModel{
|
|
|
siteUserID:string,
|
|
|
- userName:string
|
|
|
+ siteUserName:string
|
|
|
}
|
|
|
|
|
|
interface workTaskModel {
|
|
|
dataModel: {
|
|
|
doTaskID:any,
|
|
|
- doTaskUser: CurDataProps[],
|
|
|
doTaskName: string,
|
|
|
workTypeID: any,
|
|
|
content:string,
|
|
@@ -115,27 +110,26 @@ export default defineComponent({
|
|
|
const route = useRoute();
|
|
|
const editForm = ref();
|
|
|
const taskTypeList=ref<SelectProps[]>([]);
|
|
|
- const curTaskUserList = ref<CurDataProps[]>([]);
|
|
|
- const allTaskUserList = ref<CheckProps[]>([]);
|
|
|
+ const curTaskUserList = ref<SiteUserModel[]>([]);
|
|
|
+ const curTaskUserStr = ref("");
|
|
|
const workTaskData = reactive<workTaskModel>({
|
|
|
dataModel:{
|
|
|
doTaskID:null,
|
|
|
- doTaskUser: [],
|
|
|
doTaskName: '',
|
|
|
workTypeID: null,
|
|
|
content:'',
|
|
|
finishTime:null,
|
|
|
}});
|
|
|
- const workTaskRules = computed(()=>{
|
|
|
+ /*const workTaskRules = computed(()=>{
|
|
|
return {dataModel:{
|
|
|
doTaskName:{required},
|
|
|
workTypeID:{required},
|
|
|
content:{required},
|
|
|
finishTime:{required},
|
|
|
}}});
|
|
|
- const workTaskValid = useVuelidate(workTaskRules,workTaskData);
|
|
|
+ const workTaskValid = useVuelidate(workTaskRules,workTaskData);*/
|
|
|
|
|
|
- const presentAlert = async (message: string) => {
|
|
|
+ /* const presentAlert = async (message: string) => {
|
|
|
const alert = await alertController.create({
|
|
|
header: '错误!',
|
|
|
message: message,
|
|
@@ -145,18 +139,15 @@ export default defineComponent({
|
|
|
});
|
|
|
|
|
|
await alert.present();
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
const selectTaskUser = (item:any)=>{
|
|
|
item.checked = !item.checked;
|
|
|
console.log("itemData",item);
|
|
|
- const index:number = allTaskUserList.value.indexOf(item);
|
|
|
- allTaskUserList.value[index].checked = item.checked;
|
|
|
- console.log("allTaskUserList",allTaskUserList.value);
|
|
|
}
|
|
|
|
|
|
|
|
|
- const onSave = async function (){
|
|
|
+ /*const onSave = async function (){
|
|
|
const isFormCorrect = await workTaskValid.value.$validate();
|
|
|
if(!isFormCorrect) {
|
|
|
console.log("当前数据", workTaskData.dataModel);
|
|
@@ -164,23 +155,12 @@ export default defineComponent({
|
|
|
return null;
|
|
|
}
|
|
|
curTaskUserList.value =[];
|
|
|
- allTaskUserList.value.map(item=>{
|
|
|
- if(item.checked){
|
|
|
- (curTaskUserList.value as any[]).push({siteUserID:item.value,name:item.text});
|
|
|
- }
|
|
|
- });
|
|
|
- /*console.log("curTaskUserList",curTaskUserList.value);
|
|
|
- if(curTaskUserList.value.length <= 0){
|
|
|
- await presentAlert("至少选择一位指派人!");
|
|
|
- return null;
|
|
|
- }*/
|
|
|
- workTaskData.dataModel.doTaskUser = curTaskUserList.value;
|
|
|
saveWorkTask(workTaskData.dataModel).then(result => {
|
|
|
if (result) {
|
|
|
router.push("./list");
|
|
|
}
|
|
|
});
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
const onCancel = () => {
|
|
|
router.push("./list");
|
|
@@ -192,40 +172,24 @@ export default defineComponent({
|
|
|
console.log("taskTypeList",taskTypeList.value);
|
|
|
}
|
|
|
|
|
|
- const getAllTaskUserList = async function(){
|
|
|
- const data:any = await getSiteUserDataList();
|
|
|
- allTaskUserList.value = data;
|
|
|
- console.log("allTaskUserList",allTaskUserList.value);
|
|
|
- }
|
|
|
-
|
|
|
- const getCurTaskUserList = async function(taskID:any){
|
|
|
- const data:any = await getWorkUserList(taskID);
|
|
|
+ const loadCurTaskUserList = async (taskID: any) => {
|
|
|
+ const data:any = await getWorkUserList(taskID);
|
|
|
curTaskUserList.value = data;
|
|
|
console.log("curTaskUserList",curTaskUserList.value);
|
|
|
- }
|
|
|
-
|
|
|
- const loadCurTaskUserList = ()=>{
|
|
|
- if(allTaskUserList.value.length>0){
|
|
|
- allTaskUserList.value.map(item=>{
|
|
|
- if(curTaskUserList.value.length>0){
|
|
|
- curTaskUserList.value.map(it=>{
|
|
|
- if (item.value == it.siteUserID){
|
|
|
- item.checked = true;
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
+ if(curTaskUserList.value.length>0){
|
|
|
+ curTaskUserList.value.map(x=>{
|
|
|
+ curTaskUserStr.value += x.siteUserName + " ";
|
|
|
+ })
|
|
|
}
|
|
|
- console.log("allTaskUserList",allTaskUserList.value);
|
|
|
+ console.log("curTaskUserStr",curTaskUserStr.value);
|
|
|
}
|
|
|
|
|
|
const loadData = async (doTaskID: any) => {
|
|
|
+ curTaskUserStr.value ="";
|
|
|
await getWorkTypeList();
|
|
|
- await getAllTaskUserList();
|
|
|
+ await loadCurTaskUserList(doTaskID);
|
|
|
const reqData = await getWorkTaskByID(doTaskID);
|
|
|
workTaskData.dataModel = reqData;
|
|
|
- await getCurTaskUserList(workTaskData.dataModel.doTaskID);
|
|
|
- loadCurTaskUserList();
|
|
|
console.log("初始化dataModel",workTaskData.dataModel);
|
|
|
};
|
|
|
|
|
@@ -243,17 +207,18 @@ export default defineComponent({
|
|
|
return {
|
|
|
...toRefs(workTaskData),
|
|
|
arrowBackOutline,
|
|
|
+ route,
|
|
|
+ router,
|
|
|
editForm,
|
|
|
taskTypeList,
|
|
|
curTaskUserList,
|
|
|
- allTaskUserList,
|
|
|
+ curTaskUserStr,
|
|
|
selectTaskUser,
|
|
|
- onSave,
|
|
|
- onCancel,
|
|
|
loadData,
|
|
|
- route,
|
|
|
- router,
|
|
|
- workTaskValid
|
|
|
+ /*onSave,*/
|
|
|
+ onCancel,
|
|
|
+ dayjs
|
|
|
+ /*workTaskValid*/
|
|
|
}
|
|
|
}
|
|
|
});
|