Browse Source

bug处理2

liao-sea 1 year ago
parent
commit
6233f9d19a

+ 2 - 2
h5app/src/views/pages/company/edit.vue

@@ -210,7 +210,7 @@
     <ion-footer>
       <ion-toolbar>
         <div slot="end">
-          <ion-button shape="round" expand="block" @click="onNext">下一步</ion-button>
+          <ion-button shape="round" expand="block" @click="onNext">完成</ion-button>
         </div>
       </ion-toolbar>
     </ion-footer>
@@ -331,7 +331,7 @@ export default defineComponent({
       saveCompanyInfo(formState.dataModel).then(result => {
         if (result) {
           if(isAdd.value){
-            router.push({path: './list', query: {reload:1}});
+            router.push({path: './menu', query: {reload:1,id:formState.dataModel.companyID,status:2}});
           }
           else{
             router.push({path: './postList', query: {reload:1,id:formState.dataModel.companyID,status:3}});

+ 7 - 7
h5app/src/views/pages/company/editPost.vue

@@ -115,8 +115,8 @@
             <ion-label class="title-item">工作年限要求</ion-label>
             <ion-item mode="md" >
               <ion-select interface="action-sheet" placeholder="请选择工作年限" cancel-text="取消"
-                          id="workYear" v-model="dataModel.workTime" style="width: 100%;text-align: left;">
-                <ion-select-option v-for="(record,key) in workTimeList" :key="key"
+                          id="workYear" v-model="dataModel.workYear" style="width: 100%;text-align: left;">
+                <ion-select-option v-for="(record,key) in workYearList" :key="key"
                                    v-model:value="record.value">
                   {{ record.name }}
                 </ion-select-option>
@@ -190,7 +190,7 @@ export default defineComponent({
         trailtime:null,
         trailMinSalary:null,
         trailMaxSalary:null,
-        workTime:null,
+        workYear:null,
         cultureRank:null,
         welfare:null,
         postDesc:null
@@ -211,7 +211,7 @@ export default defineComponent({
       {value: true, name: '是'},
       {value: false, name: '否'},
     ]);
-    const workTimeList = ref([]);
+    const workYearList = ref([]);
     const cultureRankList = ref([]);
 
     const presentAlert = async (message: string) => {
@@ -245,8 +245,8 @@ export default defineComponent({
 
     const getWorkYearList = async function(){
       const data :any = await getSysDictionaryList("WorkYearType");
-      workTimeList.value = data;
-      console.log(workTimeList.value);
+      workYearList.value = data;
+      console.log(workYearList.value);
     }
     const getCultureRankList = async function(){
       const data:any = await getSysDictionaryList("CultureLevel");
@@ -283,7 +283,7 @@ export default defineComponent({
       isShow,
       isEdit,
       isTrailList,
-      workTimeList,
+      workYearList,
       cultureRankList,
       v$,
       onSave,

+ 9 - 3
h5app/src/views/pages/company/list.vue

@@ -14,10 +14,10 @@
     <ion-content>
       <ion-item style="margin: 10px 0;">
         <ion-input style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;"
-                   v-model="searchParams.companyName" placeholder="请输入公司名称" ></ion-input>
+                   v-model="searchParams.companyName" class="custom" placeholder="请输入公司名称" ></ion-input>
         <ion-button slot="end"
                     style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;"
-                    @click="search" >搜索
+                    @click="onSearch" >搜索
         </ion-button>
       </ion-item>
       <ion-list class="list-content">
@@ -110,6 +110,7 @@ export default defineComponent({
     const loadData = async function () {
       loading.value = true;
       getCompanyList(searchParams).then(data => {
+        dataList.value = [];
         dataList.value = dataList.value.concat(data.list);
         total.value = data.total;
         dataList.value.map((item: any) => {
@@ -122,7 +123,6 @@ export default defineComponent({
     }
 
     const reload = () => {
-      dataList.value = [];
       searchParams.pageIndex = 1;
       loadData();
     }
@@ -181,6 +181,12 @@ export default defineComponent({
 </script>
 
 <style lang="less">
+.custom{
+  --placeholder-color: gray;
+  --placeholder-font-style:italic;
+  --placeholder-opacity: 1;
+}
+
 .company-list-page {
   .list-content {
     margin: 0px 15px !important;

+ 5 - 9
h5app/src/views/pages/company/menu.vue

@@ -30,15 +30,11 @@
            </h2>
          </ion-label>
        </ion-item>
-      <ion-item style="padding-left: 55px;">
-        <ion-grid>
-          <ion-row>
-            <ion-col style="text-align: center;">
-              <ion-button expand="block" style="display: inline-block; width: 120px;height:45px;font-size: 20px;" @click="onPathForward('./edit',1)">信息维护</ion-button>
-              <ion-button expand="block" style="display: inline-block; width: 120px;height:45px;font-size: 20px;"  @click="onPathForward('./postList',3)">岗位管理</ion-button>
-            </ion-col>
-          </ion-row>
-        </ion-grid>
+      <ion-item>
+          <div style="padding-left: calc(84% - 240px);">
+            <ion-button expand="block" style="display: inline-block; width: 120px;height:45px;font-size: 20px;" @click="onPathForward('./edit',1)">信息维护</ion-button>
+            <ion-button expand="block" style="display: inline-block; width: 120px;height:45px;font-size: 20px;" @click="onPathForward('./postList',3)">岗位管理</ion-button>
+          </div>
       </ion-item>
     </ion-content>
     <ion-footer>

+ 2 - 2
h5app/src/views/pages/jobhunt/edit.vue

@@ -90,8 +90,8 @@
             <span style="font-size: 18px;">其他信息</span>
           </div>
           <ion-avatar aria-hidden="true" slot="end" style="padding-top: 10px;" >
-            <img alt="" src="@/assets/icon/arrow-up-bold.png"   class="iconBtn"  @click="expandChange" v-if="!expand"/>
-            <img alt="" src="@/assets/icon/arrow-down-bold.png" class="iconBtn"  @click="expandChange" v-if="expand"/>
+            <img alt="" src="@/assets/icon/arrow-down-bold.png" class="iconBtn"  @click="expandChange" v-if="!expand"/>
+            <img alt="" src="@/assets/icon/arrow-up-bold.png"   class="iconBtn"  @click="expandChange" v-if="expand"/>
           </ion-avatar>
         </ion-item>
         <ion-item-group v-if="expand">

+ 1 - 1
h5app/src/views/pages/jobhunt/list.vue

@@ -64,6 +64,7 @@ export default defineComponent({
     const loadData = async function () {
       loading.value = true;
       const result: any = await getJobUserList(searchParamsState);
+      dataList.value = [];
       dataList.value = dataList.value.concat(result.list);
       console.log("dataList",dataList.value);
       searchParamsState.total = result.total;
@@ -71,7 +72,6 @@ export default defineComponent({
     }
 
     const reload = () => {
-      dataList.value = [];
       searchParamsState.pageIndex = 1;
       loadData();
     }

+ 1 - 1
h5app/src/views/pages/post/recommend.vue

@@ -50,6 +50,7 @@ export default defineComponent({
     const loadData = async function () {
       loading.value = true;
       const result: any = await getJobUserList(searchParamsState);
+      dataList.value = [];
       dataList.value = dataList.value.concat(result.list);
       console.log("dataList",dataList.value);
       searchParamsState.total = result.total;
@@ -71,7 +72,6 @@ export default defineComponent({
     }
 
     const reload = () => {
-      dataList.value = [];
       searchParamsState.pageIndex = 1;
       loadData();
     }

+ 29 - 12
h5app/src/views/pages/work/log/edit.vue

@@ -5,7 +5,7 @@
         <ion-buttons slot="start">
           <ion-icon :icon="arrowBackOutline" @click="onCancel"></ion-icon>
         </ion-buttons>
-        <ion-title>工作日志录入</ion-title>
+        <ion-title>{{isAdd?"工作日志录入":"工作日志详情"}}</ion-title>
       </ion-toolbar>
     </ion-header>
     <ion-content>
@@ -18,8 +18,8 @@
         </ion-item>
         <ion-list>
           <ion-label class="title-item">工作日志日期<span class="danger">*</span></ion-label>
-          <ion-item  mode="md"  :class="[workLogValid.dataModel.workTime.$error?'ion-invalid':'ion-valid']">
-            <ion-datetime-button datetime="workTime"></ion-datetime-button>
+          <ion-item  mode="md"  :class="[workLogValid.dataModel.workTime.$error?'ion-invalid':'ion-valid']" v-if="isAdd">
+            <ion-datetime-button datetime="workTime" ></ion-datetime-button>
             <ion-modal :keep-contents-mounted="true">
               <ion-datetime id="workTime" placeholder="日期"
                             v-model="dataModel.workTime"  :prefer-wheel="true"
@@ -29,8 +29,11 @@
             </ion-modal>
             <ion-note slot="error">工作日志日期不能为空</ion-note>
           </ion-item>
+          <ion-item v-if="!isAdd">
+            <ion-label >{{dataModel.workTime}}</ion-label>
+          </ion-item>
           <ion-label class="title-item">日志类型<span class="danger">*</span></ion-label>
-          <ion-item  mode="md" :class="[workLogValid.dataModel.doTypeID.$error?'ion-invalid':'ion-valid']" style="margin-bottom: 10px;">
+          <ion-item  mode="md" :class="[workLogValid.dataModel.doTypeID.$error?'ion-invalid':'ion-valid']"  v-if="isAdd">
             <ion-select name="doTypeID"  id="doTypeID" okText="确定" cancelText="取消" v-model="dataModel.doTypeID"
                         interface="action-sheet" placeholder="请选择日志类型" style="width:100%;text-align: left;">
               <ion-select-option v-for=" (it,key) in logTypeList" :key="key" :value="it.value">
@@ -39,18 +42,24 @@
             </ion-select>
             <ion-note slot="error">日志类型不能为空</ion-note>
           </ion-item>
+          <ion-item v-if="!isAdd">
+            <ion-label >{{dataModel.logTypeName}}</ion-label>
+          </ion-item>
           <ion-label class="title-item">工作内容<span class="danger">*</span></ion-label>
-          <ion-item  mode="md"  :class="[workLogValid.dataModel.workContent.$error?'ion-invalid':'ion-valid']">
+          <ion-item mode="md" :class="[workLogValid.dataModel.workContent.$error?'ion-invalid':'ion-valid']" v-if="isAdd">
               <ion-textarea name="workContent" id="workContent" class="custom"
                             v-model="dataModel.workContent"  label-placement="stacked"
-                            style="text-align: left;" placeholder="请输入工作内容" rows="8"></ion-textarea>
+                            style="text-align: left;" placeholder="请输入工作内容" rows="4"></ion-textarea>
             <ion-note slot="error">工作内容不能为空</ion-note>
           </ion-item>
+          <ion-item v-if="!isAdd">
+            <ion-label >{{dataModel.workContent}}</ion-label>
+          </ion-item>
         </ion-list>
       </form>
     </ion-content>
     <ion-footer>
-      <ion-button shape="round" expand="block" @click="onSave">提交</ion-button>
+      <ion-button shape="round" expand="block" v-if="isAdd" @click="onSave">提交</ion-button>
     </ion-footer>
     <ion-loading
         :is-open="loading"
@@ -68,6 +77,7 @@ import {alertController, onIonViewDidEnter} from "@ionic/vue";
 import {arrowBackOutline} from 'ionicons/icons';
 import {required} from "@vuelidate/validators";
 import {useVuelidate} from "@vuelidate/core";
+import dayjs from "dayjs";
 
 interface workLogModel {
   dataModel:any
@@ -82,15 +92,15 @@ export default defineComponent({
   setup() {
     const router = useRouter();
     const route = useRoute();
-    const editForm = ref();
+    const isAdd = ref<boolean>(false);
     const loading = ref(false);
     const logTypeList=ref<SelectProps[]>([]);
     const workLogData = reactive<workLogModel>({
       dataModel:{
         doWorkID: null,
-        workTime: null,
+        workTime: dayjs().format("YYYY-MM-DD"),
         doTypeID:null,
-        workContent:''
+        workContent: null
     }});
     const workLogRules = computed(()=>{
       return {dataModel:{
@@ -133,15 +143,22 @@ export default defineComponent({
     const getWorkTypeList = async function(){
       const data:any =await getSysDictionaryList("LogType");
       logTypeList.value = data;
-    }
+    };
+
     const setOpen = (isOpen: boolean) => {
       loading.value = isOpen;
     };
+
     const loadData = async (doWorkID: any) => {
       loading.value = true;
+      isAdd.value = doWorkID == null;
       await getWorkTypeList();
       const reqData = await getWorkLogById(doWorkID);
       workLogData.dataModel = reqData;
+      if(workLogData.dataModel.workTime==null){
+         workLogData.dataModel.workTime = dayjs(new Date().toLocaleDateString()).format("YYYY-MM-DD")+"T00:00:00.000+08:00";
+         /*workLogData.dataModel.workTime = "2021-09-01T00:00:00.000+08:00";*/
+      }
       console.log("初始化dataModel",workLogData.dataModel);
       loading.value = false;
     };
@@ -161,7 +178,7 @@ export default defineComponent({
     return {
       ...toRefs(workLogData),
       arrowBackOutline,
-      editForm,
+      isAdd,
       logTypeList,
       setOpen,
       onSave,

+ 54 - 89
h5app/src/views/pages/work/task/edit.vue

@@ -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*/
     }
   }
 });

+ 20 - 12
h5app/src/views/pages/work/task/list.vue

@@ -6,16 +6,16 @@
           <ion-icon :icon="arrowBackOutline" @click="onBack"></ion-icon>
         </ion-buttons>
         <ion-title>工作任务</ion-title>
-        <ion-buttons slot="end">
+<!--        <ion-buttons slot="end">
           <ion-icon :icon="addCircleOutline" @click="onAdd"></ion-icon>
-        </ion-buttons>
+        </ion-buttons>-->
       </ion-toolbar>
     </ion-header>
     <ion-content>
       <ion-item style="margin: 10px 0;">
-        <ion-input placeholder="请输入任务名称"  class="custom"
-                   style="border: 1px solid #f2f2f5;height: 33px;width: 70px;margin-left: 10px;border-radius: 14px;--padding-start: 10px;"></ion-input>
-        <ion-button slot="end" style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;">搜索</ion-button>
+        <ion-input placeholder="请输入任务名称"  class="custom" v-model="searchParamsState.name"
+                   style="border: 1px solid #f2f2f5;height: 33px;width: 70px;margin-left: 10px;border-radius: 14px;--padding-start: 10px;" ></ion-input>
+        <ion-button slot="end" style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;" @click="onSearch">搜索</ion-button>
       </ion-item>
       <ion-list class="list-content" >
         <ion-item v-for="(record,key) in dataList" :key="key" detail  @click="onDetail(record.doTaskID)">
@@ -23,9 +23,12 @@
             <img alt="" src="@/assets/icon/icon-mine-punish.png" />
           </ion-avatar>
           <ion-label>
-            <h3>{{ record.workTypeName }}</h3>
-            <p>{{ record.doTaskName }}:{{record.content}}</p>
+            <h3>{{ record.doTaskName}}</h3>
+            <p>{{ record.workTypeName }}:{{dayjs(record.finishTime).format("YYYY-MM-DD")}}</p>
           </ion-label>
+          <ion-avatar aria-hidden="true" slot="end">
+            <p>{{ record.taskStatusName}}</p>
+          </ion-avatar>
         </ion-item>
       </ion-list>
       <b-empty v-if="dataList.length<=0" :loading="loading"/>
@@ -57,7 +60,7 @@ export default defineComponent({
       pageIndex: 1,
       pageSize: 10,
       total:0,
-      writeStatus: null
+      name: ''
     })
     const loading =ref(true);
     const dataList = ref<any>([]);
@@ -67,12 +70,16 @@ export default defineComponent({
     const loadData = async function () {
       loading.value = true;
       const result: any = await getWorkTaskList(searchParamsState);
+      dataList.value = [];
       dataList.value = dataList.value.concat(result.list);
       console.log("dataList",dataList.value);
       searchParamsState.total = result.total;
       loading.value = false;
     }
 
+    const onSearch = ()=>{
+      loadData();
+    }
 
     const onScroll = (e: any) => {
       setTimeout(() => {
@@ -84,9 +91,9 @@ export default defineComponent({
       }, 500);
     }
 
-    const onAdd = (item: any) => {
+   /* const onAdd = (item: any) => {
       router.push({path: './edit', query: {reload: 1, doTaskID: ""}});
-    }
+    }*/
     const onBack =()=>{
       router.push('../');
     }
@@ -110,13 +117,14 @@ export default defineComponent({
       loading,
       dataList,
       searchParamsState,
-      dayjs,
+      onSearch,
       onScroll,
-      onAdd,
+      /*onAdd,*/
       onBack,
       onDetail,
       loadData,
       reload,
+      dayjs,
       ellipse,
       arrowBackOutline,
       addCircleOutline,

+ 1 - 2
h5app/src/views/sapp/tabMain.vue

@@ -100,9 +100,9 @@ export default defineComponent({
     const loadData = async function () {
       loading.value = true;
       const result: any = await getMyWorkTasks(searchParamsState);
+      dataList.value = [];
       dataList.value = dataList.value.concat(result.list);
       console.log("dataList",dataList.value);
-      searchParamsState.total = result.total;
       loading.value = false;
     }
 
@@ -120,7 +120,6 @@ export default defineComponent({
       }, 500);
     }
     const reload = () => {
-      dataList.value = [];
       searchParamsState.pageIndex = 1;
       loadData();
     }

+ 1 - 1
src/main/java/com/hz/employmentsite/controller/companyService/PostController.java

@@ -88,7 +88,7 @@ public class PostController {
             data.postID = UUID.randomUUID().toString();
             data.startTime = new Date();
             data.endTime = new Date();
-            data.recordStatus =1;
+            data.recordStatus=1;
         }
         return RespGenerstor.success(data);
     }

+ 1 - 1
src/main/java/com/hz/employmentsite/controller/jobUserManager/JobUserController.java

@@ -108,8 +108,8 @@ public class JobUserController {
 
     @GetMapping("/export")
     public BaseResponse export(HttpServletResponse response, @RequestParam(required = false) Boolean isExport,
+                               @RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,
                                @RequestParam(required = false) List<String> jobUserIDList,
-                               @RequestParam("page") int pageIndex, @RequestParam("limit") int pageSize,
                                @RequestParam(required = false) String name, @RequestParam(required = false) String siteId, @RequestParam(required = false) String jobStatus,
                                @RequestParam(required = false) Integer sexId,@RequestParam(required = false) Integer educationTypeId,
                                @RequestParam(required = false) Integer emphasisTypeId) throws Exception {

+ 1 - 1
src/main/java/com/hz/employmentsite/controller/taskAndLog/DoWorkController.java

@@ -10,10 +10,10 @@ import com.hz.employmentsite.vo.taskAndLog.DoWorkVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
+import java.sql.Date;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Date;
 import java.util.UUID;
 
 @RestController

+ 10 - 0
src/main/java/com/hz/employmentsite/model/PcDotaskUser.java

@@ -7,6 +7,8 @@ public class PcDotaskUser {
 
     private String siteUserID;
 
+    private Integer userTaskStatus;
+
     public String getDotaskUserID() {
         return dotaskUserID;
     }
@@ -30,4 +32,12 @@ public class PcDotaskUser {
     public void setSiteUserID(String siteUserID) {
         this.siteUserID = siteUserID == null ? null : siteUserID.trim();
     }
+
+    public Integer getUserTaskStatus() {
+        return userTaskStatus;
+    }
+
+    public void setUserTaskStatus(Integer userTaskStatus) {
+        this.userTaskStatus = userTaskStatus;
+    }
 }

+ 60 - 0
src/main/java/com/hz/employmentsite/model/PcDotaskUserExample.java

@@ -313,6 +313,66 @@ public class PcDotaskUserExample {
             addCriterion("SiteUserID not between", value1, value2, "siteUserID");
             return (Criteria) this;
         }
+
+        public Criteria andUserTaskStatusIsNull() {
+            addCriterion("UserTaskStatus is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusIsNotNull() {
+            addCriterion("UserTaskStatus is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusEqualTo(Integer value) {
+            addCriterion("UserTaskStatus =", value, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusNotEqualTo(Integer value) {
+            addCriterion("UserTaskStatus <>", value, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusGreaterThan(Integer value) {
+            addCriterion("UserTaskStatus >", value, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("UserTaskStatus >=", value, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusLessThan(Integer value) {
+            addCriterion("UserTaskStatus <", value, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("UserTaskStatus <=", value, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusIn(List<Integer> values) {
+            addCriterion("UserTaskStatus in", values, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusNotIn(List<Integer> values) {
+            addCriterion("UserTaskStatus not in", values, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusBetween(Integer value1, Integer value2) {
+            addCriterion("UserTaskStatus between", value1, value2, "userTaskStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserTaskStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("UserTaskStatus not between", value1, value2, "userTaskStatus");
+            return (Criteria) this;
+        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 1 - 0
src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoTaskImpl.java

@@ -164,6 +164,7 @@ public class DoTaskImpl implements DoTaskService {
                 user.setDotaskUserID(UUID.randomUUID().toString());
                 user.setDotaskID(doTaskID);
                 user.setSiteUserID(curData.siteUserID);
+                user.setUserTaskStatus(0);
                 doTaskUserMapper.insert(user);
             };
         }

+ 19 - 9
src/main/resources/mapping/PcDotaskUserMapper.xml

@@ -5,6 +5,7 @@
     <result column="DotaskUserID" jdbcType="VARCHAR" property="dotaskUserID" />
     <result column="DotaskID" jdbcType="VARCHAR" property="dotaskID" />
     <result column="SiteUserID" jdbcType="VARCHAR" property="siteUserID" />
+    <result column="UserTaskStatus" jdbcType="INTEGER" property="userTaskStatus" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -65,7 +66,7 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    DotaskUserID, DotaskID, SiteUserID
+    DotaskUserID, DotaskID, SiteUserID, UserTaskStatus
   </sql>
   <select id="selectByExample" parameterType="com.hz.employmentsite.model.PcDotaskUserExample" resultMap="BaseResultMap">
     select
@@ -87,6 +88,12 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
+  <insert id="insert" parameterType="com.hz.employmentsite.model.PcDotaskUser">
+    insert into pc_dotask_user (DotaskUserID, DotaskID, SiteUserID, 
+      UserTaskStatus)
+    values (#{dotaskUserID,jdbcType=VARCHAR}, #{dotaskID,jdbcType=VARCHAR}, #{siteUserID,jdbcType=VARCHAR}, 
+      #{userTaskStatus,jdbcType=INTEGER})
+  </insert>
   <insert id="insertSelective" parameterType="com.hz.employmentsite.model.PcDotaskUser">
     insert into pc_dotask_user
     <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -99,6 +106,9 @@
       <if test="siteUserID != null">
         SiteUserID,
       </if>
+      <if test="userTaskStatus != null">
+        UserTaskStatus,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="dotaskUserID != null">
@@ -110,6 +120,9 @@
       <if test="siteUserID != null">
         #{siteUserID,jdbcType=VARCHAR},
       </if>
+      <if test="userTaskStatus != null">
+        #{userTaskStatus,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.hz.employmentsite.model.PcDotaskUserExample" resultType="java.lang.Long">
@@ -130,23 +143,20 @@
       <if test="row.siteUserID != null">
         SiteUserID = #{row.siteUserID,jdbcType=VARCHAR},
       </if>
+      <if test="row.userTaskStatus != null">
+        UserTaskStatus = #{row.userTaskStatus,jdbcType=INTEGER},
+      </if>
     </set>
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
   </update>
-
-  <insert id="insert" parameterType="com.hz.employmentsite.model.PcDotaskUser">
-    insert into pc_dotask_user (DotaskUserID, DotaskID, SiteUserID
-      )
-    values (#{dotaskUserID,jdbcType=VARCHAR}, #{dotaskID,jdbcType=VARCHAR}, #{siteUserID,jdbcType=VARCHAR}
-      )
-  </insert>
   <update id="updateByExample" parameterType="map">
     update pc_dotask_user
     set DotaskUserID = #{row.dotaskUserID,jdbcType=VARCHAR},
       DotaskID = #{row.dotaskID,jdbcType=VARCHAR},
-      SiteUserID = #{row.siteUserID,jdbcType=VARCHAR}
+      SiteUserID = #{row.siteUserID,jdbcType=VARCHAR},
+      UserTaskStatus = #{row.userTaskStatus,jdbcType=INTEGER}
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>

+ 3 - 2
src/main/resources/mapping/cquery/DoTaskCQuery.xml

@@ -2,7 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.hz.employmentsite.mapper.cquery.DoTaskCQuery">
     <select id="getList" resultType="com.hz.employmentsite.vo.taskAndLog.DoTaskVo">
-        select task.dotaskID,task.workTypeID,task.content,task.dotaskName,u.`Name` as createName,task.finishTime,task.createTime,task.taskStatus,dic_taskStatus.Name as taskStatusName,
+        select task.dotaskID,task.workTypeID,task.content,task.dotaskName,u.`Name` as createName,task.finishTime,task.createTime,
+        task.taskStatus,dic_taskStatus.Name as taskStatusName,
         (select count(*) from pc_dotask_user du where du.DotaskID = task.DotaskID)as  userCount, city.`name` as regionName,
         area.`name` as streetName,item.`Name` as workTypeName,task.regionCode,task.streetCode,doTaskUser.siteUserID from pc_dotask task
         left join sys_dictionary_item item  on item.`Value` = task.WorkTypeID
@@ -10,7 +11,7 @@
         left join sys_user u on u.UserID = task.CreateUserID
         left join pc_dotask_user doTaskUser on task.dotaskID = doTaskUser.dotaskID
         left join area_code city on city.`code` = task.RegionCode
-        left join area_code area on area.`code` = task.StreetCode  where item.DictionaryCode='TaskType'
+        left join area_code area on area.`code` = task.StreetCode where item.DictionaryCode='TaskType'
         <if test="doTaskIDList != '' and doTaskIDList != null">
             and task.dotaskID in (${doTaskIDList})
         </if>

+ 40 - 93
vue/src/views/jobUserManager/jobuser/edit.vue

@@ -4,28 +4,20 @@
       <a-divider orientation="left">求职人员信息管理</a-divider>
       <a-row :gutter="24">
         <a-col :span="8">
-          <a-form-item
-            label="姓名"
-            :label-col="{ span: 6 }"
-            name="name"
-            :rules="[{ required: true, message: '请输入姓名!' }]"
-          >
+          <a-form-item label="姓名" :label-col="{ span: 6 }"
+                       name="name" :rules="[{ required: true, message: '请输入姓名!' }]">
             <a-input v-model:value="dataModel.name" placeholder=""/>
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item
-            label="身份证号码"
-            :label-col="{ span: 6 }"
-            name="identityNumber"
-            :rules="[{ required: true, message: '请输入身份证号码!' }]"
-          >
+          <a-form-item  label="身份证号码" :label-col="{ span: 6 }"
+                        name="identityNumber" :rules="[{ required: true, message: '请输入身份证号码!' }]" >
             <a-input v-model:value="dataModel.identityNumber" placeholder=""/>
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="性别" :label-col="{span:6}" name="sex"
-                       :rules="[{ required: true, message: '请选择性别!' }]">
+          <a-form-item label="性别" :label-col="{span:6}"
+                       name="sex" :rules="[{ required: true, message: '请选择性别!' }]">
             <a-select
               ref="select"
               v-model:value="dataModel.sex"
@@ -40,18 +32,12 @@
 
       <a-row :gutter="24">
         <a-col :span="8">
-          <a-form-item
-            label="民族"
-            :label-col="{ span: 6 }"
-            name="nation"
-            :rules="[{ required: true, message: '请输入民族!' }]"
-          >
+          <a-form-item label="民族" :label-col="{ span: 6 }"  name="nation">
             <a-input v-model:value="dataModel.nation" placeholder=""/>
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="政治面貌" :label-col="{span:6}" name="politicsStatusID"
-                       :rules="[{ required: true, message: '请选择政治面貌!' }]">
+          <a-form-item label="政治面貌" :label-col="{span:6}" name="politicsStatusID">
             <a-select
               ref="select"
               v-model:value="dataModel.politicsStatusID"
@@ -63,12 +49,7 @@
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item
-            label="出生地"
-            :label-col="{ span: 6 }"
-            name="birthPlace"
-            :rules="[{ required: true, message: '请输入出生地!' }]"
-          >
+          <a-form-item label="出生地" :label-col="{ span: 6 }" name="birthPlace">
             <a-input v-model:value="dataModel.birthPlace" placeholder=""/>
           </a-form-item>
         </a-col>
@@ -76,22 +57,15 @@
 
       <a-row :gutter="24">
         <a-col :span="8">
-          <a-form-item
-            label="出生日期"
-            :label-col="{ span: 6 }"
-            name="birthDay"
-            :rules="[{ required: true, message: '请输入出生日期!' }]"
-          >
+          <a-form-item label="出生日期" :label-col="{ span: 6 }" name="birthDay" >
             <a-date-picker
               v-model:value="dataModel.birthDay"
               picker="date"
-              value-format="YYYY-MM-DD"
-            />
+              value-format="YYYY-MM-DD"/>
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="户口性质" :label-col="{span:6}" name="familyNatureID"
-                       :rules="[{ required: true, message: '请选择户口性质!' }]">
+          <a-form-item label="户口性质" :label-col="{span:6}" name="familyNatureID" >
             <a-select
               ref="select"
               v-model:value="dataModel.familyNatureID"
@@ -103,8 +77,7 @@
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="文化程度" :label-col="{span:6}" name="cultureRank"
-                       :rules="[{ required: true, message: '请选择文化程度!' }]">
+          <a-form-item label="文化程度" :label-col="{span:6}" name="cultureRank">
             <a-select
               ref="select"
               v-model:value="dataModel.cultureRank"
@@ -119,8 +92,7 @@
 
       <a-row :gutter="24">
         <a-col :span="8">
-          <a-form-item label="健康状况" :label-col="{span:6}" name="healthID"
-                       :rules="[{ required: true, message: '请选择健康状况!' }]">
+          <a-form-item label="健康状况" :label-col="{span:6}" name="healthID">
             <a-select
               ref="select"
               v-model:value="dataModel.healthID"
@@ -135,9 +107,7 @@
           <a-form-item
             label="血型"
             :label-col="{ span: 6 }"
-            name="bloodTypeID"
-            :rules="[{ required: true, message: '请输入血型!' }]"
-          >
+            name="bloodTypeID" >
             <a-select
               ref="select"
               v-model:value="dataModel.bloodTypeID"
@@ -152,9 +122,7 @@
           <a-form-item
             label="身高"
             :label-col="{ span: 6 }"
-            name="height"
-            :rules="[{ required: false, message: '请输入身高!' }]"
-          >
+            name="height">
             <a-input v-model:value="dataModel.height" placeholder=""/>
           </a-form-item>
         </a-col>
@@ -165,9 +133,7 @@
           <a-form-item
             label="视力"
             :label-col="{ span: 6 }"
-            name="vision"
-            :rules="[{ required: false, message: '请输入视力!' }]"
-          >
+            name="vision">
             <a-input v-model:value="dataModel.vision" placeholder=""/>
           </a-form-item>
         </a-col>
@@ -175,15 +141,12 @@
           <a-form-item
             label="体重"
             :label-col="{ span: 6 }"
-            name="weight"
-            :rules="[{ required: false, message: '请输入体重!' }]"
-          >
+            name="weight" >
             <a-input v-model:value="dataModel.weight" placeholder=""/>
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="婚姻状况" :label-col="{span:6}" name="maritalStatusID"
-                       :rules="[{ required: true, message: '请选择婚姻状况!' }]">
+          <a-form-item label="婚姻状况" :label-col="{span:6}" name="maritalStatusID">
             <a-select
               ref="select"
               v-model:value="dataModel.maritalStatusID"
@@ -198,8 +161,7 @@
 
       <a-row :gutter="24">
         <a-col :span="8">
-          <a-form-item label="省份" :label-col="{span:6}" name="provinceCode"
-                       :rules="[{ required: true, message: '请选择省份!' }]">
+          <a-form-item label="省份" :label-col="{span:6}" name="provinceCode">
             <a-select
               ref="select"
               v-model:value="dataModel.provinceCode"
@@ -211,8 +173,7 @@
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="市/县" :label-col="{span:6}" name="regionCode"
-                       :rules="[{ required: true, message: '请选择市/县!' }]">
+          <a-form-item label="市/县" :label-col="{span:6}" name="regionCode">
             <a-select
               ref="select"
               v-model:value="dataModel.regionCode"
@@ -225,8 +186,7 @@
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="镇街" :label-col="{span:6}" name="streetCode"
-                       :rules="[{ required: true, message: '请选择镇街!' }]">
+          <a-form-item label="镇街" :label-col="{span:6}" name="streetCode">
             <a-select
               ref="select"
               v-model:value="dataModel.streetCode"
@@ -244,19 +204,13 @@
           <a-form-item
             label="联系人"
             :label-col="{ span: 6 }"
-            name="userName"
-            :rules="[{ required: true, message: '请输入联系人!' }]"
-          >
+            name="userName">
             <a-input v-model:value="dataModel.userName" placeholder=""/>
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item
-            label="联系电话"
-            :label-col="{ span: 6 }"
-            name="userMobile"
-            :rules="[{ required: true, message: '请输入联系电话!' }]"
-          >
+          <a-form-item label="联系电话" :label-col="{ span: 6 }"
+                       name="userMobile" :rules="[{ required: true, message: '请选择性别!' }]">
             <a-input v-model:value="dataModel.userMobile" placeholder=""/>
           </a-form-item>
         </a-col>
@@ -277,9 +231,7 @@
           <a-form-item
             label="家庭住址"
             :label-col="{ span: 6 }"
-            name="familyAddress"
-            :rules="[{ required: true, message: '请输入家庭住址!' }]"
-          >
+            name="familyAddress" >
             <a-input v-model:value="dataModel.familyAddress" placeholder=""/>
           </a-form-item>
         </a-col>
@@ -287,9 +239,7 @@
           <a-form-item
             label="邮政编码"
             :label-col="{ span: 6 }"
-            name="postalCode"
-            :rules="[{ required: false, message: '请输入邮政编码!' }]"
-          >
+            name="postalCode">
             <a-input v-model:value="dataModel.postalCode" placeholder=""/>
           </a-form-item>
         </a-col>
@@ -297,9 +247,7 @@
           <a-form-item
             label="电子邮箱"
             :label-col="{ span: 6 }"
-            name="email"
-            :rules="[{ required: true, message: '请输入电子邮箱!' }]"
-          >
+            name="email">
             <a-input v-model:value="dataModel.email" placeholder=""/>
           </a-form-item>
         </a-col>
@@ -350,16 +298,23 @@
       <a-row :gutter="24">
         <a-col :span="11">
           <a-form-item
-            label=" 兴趣爱好"
+            label="兴趣爱好"
             :label-col="{ span: 4 }"
-            name="hobby"
-            :rules="[{ required: false, message: '请输入兴趣爱好!' }]"
-          >
-            <!--            <a-input v-model:value="dataModel.hobby" placeholder=""/>-->
+            name="hobby" >
             <a-textarea v-model:value="dataModel.hobby" placeholder="兴趣爱好" :rows="2" style="margin-left: 8px;"/>
           </a-form-item>
         </a-col>
       </a-row>
+      <a-row :gutter="24">
+        <a-col :span="11">
+          <a-form-item
+            label="其他"
+            :label-col="{ span: 4 }"
+            name="personalSkills" >
+            <a-textarea v-model:value="dataModel.personalSkills" placeholder="个人技能" :rows="4" style="margin-left: 8px;"/>
+          </a-form-item>
+        </a-col>
+      </a-row>
       <a-row>
         <a-col :span="24" style="text-align: right; margin-top: 20px; margin-right: 20px">
           <Space>
@@ -486,14 +441,6 @@
           </a-table>
         </a-col>
       </a-row>
-      <a-divider orientation="left">其他</a-divider>
-      <a-row>
-        <a-col class="table-bottom-a1">
-          <a-form-item :label-col="{span:8}" label="" name="personalSkills">
-            <a-textarea v-model:value="dataModel.personalSkills" placeholder="个人技能" :rows="4"/>
-          </a-form-item>
-        </a-col>
-      </a-row>
       <a-form-item class="buttom-btns">
         <a-button @click="onClose">取消</a-button>
         <a-button type="primary" html-type="submit">提交</a-button>

+ 1 - 1
vue/src/views/jobUserManager/jobuser/index.vue

@@ -105,7 +105,7 @@
           <a-button type="primary" html-type="submit" @click='onAdd' functioncode="T01030102">新增</a-button>
           <BExportExcel :title="'导出'" :filename="'求职人员信息'"
                         :url="'jobUserService/jobUser/export'"
-                        :params="{...searchParamsState, isExport: true, rows:10000,siteUserIDList:formState.selectedRowKeys.join(',')}"></BExportExcel>
+                        :params="{...searchParamsState, isExport: true, rows:10000,jobUserIDList:formState.selectedRowKeys.join(',')}"></BExportExcel>
         </a-col>
       </a-row>
     </a-form>

+ 2 - 1
vue/src/views/taskAndLog/dotask/edit.vue

@@ -264,7 +264,8 @@ export default defineComponent(
           console.log("hhh",defaultSiteUser);
           (userData.value as any[]).push({siteUserID: defaultSiteUser.siteUserID,siteUserName:defaultSiteUser.siteUserName,genderName:defaultSiteUser.genderName,mobile:defaultSiteUser.mobile,taskStatusName:"待完成"});
         }*/
-        modalSiteUserRef.value.show(formData.dataModel.doTaskID);
+        modalSiteUserRef.value.show(formData.dataModel.doTaskID,userData.value);
+        console.log("userData",userData.value);
       }
       const deleteUser = (record) => {
         (userData.value as any[]).splice(record, 1);

+ 44 - 32
vue/src/views/taskAndLog/dotask/siteUser.vue

@@ -1,13 +1,17 @@
 <template>
+
+  <!--
+      cancel-text="取消"
+      :ok-button-props="{ style: { display: 'none' } }"-->
   <a-modal
     :width="800"
     v-model:visible="visible"
     title="添加人员"
+    :closable="false"
     :keyboard="false"
     :mask-closable="false"
-    :closable="false"
-    cancel-text="取消"
-    :ok-button-props="{ style: { display: 'none' } }"
+    ok-text="选择"
+    @ok="onCommit"
   >
     <div class="modal-search">
       <a-form
@@ -25,13 +29,13 @@
           <a-col :span="10">
 
           </a-col>
-          <a-col :span="4" style="text-align: left">
+          <a-col :span="4" style="text-align: left;">
             <a-button type="primary" html-type="submit" @click="loadSiteUserList">查询</a-button>
           </a-col>
         </a-row>
       </a-form>
       <div class="search-result-list">
-        <a-table :columns="columns" :data-source="siteUserList" :scroll="{ x: 500, y: 500 }" :pagination="pagination"
+        <a-table :columns="columns" :data-source="allSiteUserList" :scroll="{ x: 500, y: 500 }" :pagination="pagination"
                  :loading="formState.loading"
                  @change="handleTableChange"
                  :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
@@ -40,14 +44,12 @@
         </a-table>
       </div>
     </div>
-    <a-button type="primary" @click="onCommit">确定</a-button>
   </a-modal>
 </template>
 <script lang="ts">
 import {computed, defineComponent, reactive, ref} from "vue";
 import type {TableColumnsType, TableProps} from 'ant-design-vue';
 import type {FormInstance} from 'ant-design-vue';
-import {getWorkUserList} from '@/api/taskAndLog/dotask'
 import {getSiteUserList} from '@/api/baseSettings/userInfo';
 
 interface siteUserModel{
@@ -62,10 +64,10 @@ export default defineComponent({
     }
   },
   setup() {
-    const siteUserList = ref([]);
-    const curUserList = ref([]);
-    const curPageSelectUserID = ref<siteUserModel[]>([]);
     const visible = ref<boolean>(false);
+    const allSiteUserList = ref([]);
+    const curDoTaskID = ref("");
+    const curSelectedUsers = ref([]);
     const searchParamsState = reactive({
       pageIndex: 1,
       pageSize: 10,
@@ -97,6 +99,8 @@ export default defineComponent({
     const targetKeys = ref<string[]>();
     const onSelectChange = (selectedRowKeys: any) => {
       formState.selectedRowKeys = selectedRowKeys;
+      console.log("curSelectedUsers",curSelectedUsers.value);
+      console.log("selectedRowKeys",formState.selectedRowKeys);
     };
 
     const handleTableChange: TableProps['onChange'] = (
@@ -109,39 +113,46 @@ export default defineComponent({
 
     const loadSiteUserList = async function () {
       const allSiteUsers: any = await getSiteUserList(searchParamsState);
-      siteUserList.value = allSiteUsers.list;
+      allSiteUserList.value = allSiteUsers.list;
+      if(curSelectedUsers.value.length>0 && allSiteUserList.value.length>0){
+        (curSelectedUsers.value as siteUserModel[]).filter(item=>{
+          const curIndex = (allSiteUserList.value  as siteUserModel[]).findIndex(x=>x.siteUserID == item.siteUserID);
+          if(curIndex>-1){
+            (formState.selectedRowKeys as string[]).push(item.siteUserID);
+          }
+        })
+      }
       formState.total = allSiteUsers.total;
-      console.log("所有站点人员",siteUserList.value);
+      console.log("所有站点人员",allSiteUserList.value);
     }
 
-    const show = async function (curTaskID:any) {
+    const show = async function (curTaskID:any,selectedUsers:any) {
       formState.loading = true;
-      curPageSelectUserID.value = [];
+      /*数据重置*/
+      curSelectedUsers.value = [];
       formState.selectedRowKeys = [];
-      getWorkUserList(curTaskID).then(curTaskUsers => {
-        curUserList.value = curTaskUsers;
-        console.log("当前站点人员",curUserList.value);
-      });
+      searchParamsState.pageIndex = 1;
+
+      curDoTaskID.value = curTaskID;
+      curSelectedUsers.value = selectedUsers;
       await loadSiteUserList();
-      if(curUserList.value.length>0 && siteUserList.value.length>0){
-        (curUserList.value as siteUserModel[]).filter(item=>{
-          const curIndex = (siteUserList.value  as siteUserModel[]).findIndex(x=>x.siteUserID == item.siteUserID);
-          if(curIndex>-1){
-            (formState.selectedRowKeys as string[]).push(item.siteUserID);
-          }
-        })
-      }
       formState.loading = false;
       visible.value = true;
     };
 
     const onCommit = async function (){
-      const allSelectSiteUser: any = await getSiteUserList({pageIndex:1,pageSize:9999,siteUserIDList:formState.selectedRowKeys.join(',')});
-      console.log("allSelectSiteUser",allSelectSiteUser.list);
+      const newSelectSiteUserIDList :string[]= [];
+      formState.selectedRowKeys.map(item=> {
+        if((curSelectedUsers.value  as siteUserModel[]).findIndex(x=>x.siteUserID == item)==-1){
+          newSelectSiteUserIDList.push(item);
+        }
+      });
+      console.log("newSelectSiteUserIDList",newSelectSiteUserIDList);
+      const allSelectSiteUser: any = await getSiteUserList({pageIndex:1,pageSize:9999,siteUserIDList:newSelectSiteUserIDList.join(',')});
       allSelectSiteUser.list.map(x=>{
-        (curUserList.value as any[]).push({siteUserID: x.siteUserID,siteUserName:x.siteUserName,genderName:x.genderName,mobile:x.mobile,taskStatusName:"待完成"});
-      })
-     /*visible.value = false;*/
+        (curSelectedUsers.value as any[]).push({doTaskID:curDoTaskID.value,siteUserID: x.siteUserID,siteUserName:x.siteUserName,genderName:x.genderName,mobile:x.mobile,taskStatusName:"待完成"});
+      });
+      visible.value = false;
     };
 
     return {
@@ -149,7 +160,8 @@ export default defineComponent({
       modalFormRef,
       searchParamsState,
       columns,
-      siteUserList,
+      curSelectedUsers,
+      allSiteUserList,
       pagination,
       show,
       loadSiteUserList,