|
@@ -20,7 +20,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<form ref="editForm" @submit.prevent="onSave">
|
|
|
- <ion-list class="canvasWrapper" v-if="curStepData.statusVal==1">
|
|
|
+ <div class="panel-content" v-if="curStepData.statusVal==1">
|
|
|
<ion-item-group>
|
|
|
<ion-item>
|
|
|
<div class="panel-title2">
|
|
@@ -28,27 +28,27 @@
|
|
|
基本信息
|
|
|
</div>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.name.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.name.$error?'ion-invalid':'ion-valid']">
|
|
|
<ion-label>姓名<span class="danger">*</span></ion-label>
|
|
|
<ion-input name="name" id="name" style="text-align: right;" placeholder="请输入姓名" v-model="baseData.name" ></ion-input>
|
|
|
<ion-note slot="error">姓名不能为空</ion-note>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.identityNumber.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.identityNumber.$error?'ion-invalid':'ion-valid']">
|
|
|
<ion-label>公民身份号码<span class="danger">*</span></ion-label>
|
|
|
<ion-input name="identityNumber" id="identityNumber" style="text-align: right;" placeholder="请输入身份证号码" v-model="baseData.identityNumber" ></ion-input>
|
|
|
<ion-note slot="error">公民身份号码不能为空</ion-note>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.sex.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.sex.$error?'ion-invalid':'ion-valid']">
|
|
|
<ion-label>性别<span class="danger">*</span></ion-label>
|
|
|
- <ion-select name="sex" id="sex" okText="确定" cancelText="取消" v-model="baseData.sex"
|
|
|
- interface="action-sheet" placeholder="请选择性别" >
|
|
|
- <ion-select-option v-for=" (it,key) in genderList" :key="key" :value="it.value">
|
|
|
+ <ion-select name="sex" id="sex" okText="确定" cancelText="取消"
|
|
|
+ interface="action-sheet" v-model="baseData.sex" placeholder="请选择性别" >
|
|
|
+ <ion-select-option v-for=" (it,key) in genderList" :key="key" :value="it.value">
|
|
|
{{ it.name }}
|
|
|
</ion-select-option>
|
|
|
</ion-select>
|
|
|
<ion-note slot="error">性别不能为空</ion-note>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.jobStatusID.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.jobStatusID.$error?'ion-invalid':'ion-valid']">
|
|
|
<ion-label>就业状态<span class="danger">*</span></ion-label>
|
|
|
<ion-select name="jobStatusID" id="jobStatusID" okText="确定" cancelText="取消" v-model="baseData.jobStatusID"
|
|
|
interface="action-sheet" placeholder="请选择就业状态" >
|
|
@@ -58,7 +58,7 @@
|
|
|
</ion-select>
|
|
|
<ion-note slot="error">就业状态不能为空</ion-note>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.keyPersonTypeID.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.keyPersonTypeID.$error?'ion-invalid':'ion-valid']">
|
|
|
<ion-label>重点人员类别<span class="danger">*</span></ion-label>
|
|
|
<ion-select name="keyPersonTypeID" id="keyPersonTypeID" okText="确定" cancelText="取消" v-model="baseData.keyPersonTypeID"
|
|
|
interface="action-sheet" placeholder="请选择重点人员类别" >
|
|
@@ -68,17 +68,17 @@
|
|
|
</ion-select>
|
|
|
<ion-note slot="error">重点人员类别不能为空</ion-note>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.userMobile.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.userMobile.$error?'ion-invalid':'ion-valid']">
|
|
|
<ion-label>联系电话<span class="danger">*</span></ion-label>
|
|
|
<ion-input name="userMobile" id="userMobile" style="text-align: right;" placeholder="请输入联系电话" v-model="baseData.userMobile" ></ion-input>
|
|
|
<ion-note slot="error">联系电话不能为空</ion-note>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.address.$error?'ion-invalid':'ion-valid']">
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.address.$error?'ion-invalid':'ion-valid']">
|
|
|
<ion-label>地址<span class="danger">*</span></ion-label>
|
|
|
<ion-input name="address" id="address" style="text-align: right;" placeholder="请输入地址" v-model="baseData.address" ></ion-input>
|
|
|
<ion-note slot="error">地址不能为空</ion-note>
|
|
|
</ion-item>
|
|
|
- <ion-item :class="[baseDataValid.baseData.siteID.$error?'ion-invalid':'ion-valid']" >
|
|
|
+ <ion-item mode="md" :class="[baseDataValid.baseData.siteID.$error?'ion-invalid':'ion-valid']" >
|
|
|
<ion-label>所属驿站<span class="danger">*</span></ion-label>
|
|
|
<ion-select name="siteID" id="siteID" okText="确定" cancelText="取消" v-model="baseData.siteID"
|
|
|
interface="action-sheet" placeholder="请选择所属驿站" >
|
|
@@ -192,8 +192,8 @@
|
|
|
<ion-input name="hobby" id="hobby" style="text-align: right;" placeholder="请输入兴趣爱好" v-model="baseData.hobby" ></ion-input>
|
|
|
</ion-item>
|
|
|
</ion-item-group>
|
|
|
- </ion-list>
|
|
|
- <ion-list class="canvasWrapper" v-if="curStepData.statusVal==2">
|
|
|
+ </div>
|
|
|
+ <div class="panel-content" v-if="curStepData.statusVal==2">
|
|
|
<ion-item>
|
|
|
<div class="panel-title2">
|
|
|
<div class="item-flag"></div>
|
|
@@ -204,16 +204,28 @@
|
|
|
@click="onPathForward('./educationEdit',null,null,2)"></ion-icon>
|
|
|
</ion-buttons>
|
|
|
</ion-item>
|
|
|
+ <!--<ion-refresher pulling-text="下拉刷新" @ionRefresh="onRefresh()"></ion-refresher>-->
|
|
|
<ion-item v-for="(record,key) in educationList" :key="key" >
|
|
|
<ion-label>
|
|
|
<h3>{{record.schoolName}}</h3>
|
|
|
- <p>{{record.schoolTimeStr}}至{{record.overTimeStr}}</p>
|
|
|
+ <p>{{dayjs(record.schoolTime).format("YYYY-MM-DD")}}至{{dayjs(record.overTime).format("YYYY-MM-DD")}}</p>
|
|
|
</ion-label>
|
|
|
<img alt="" src="@/assets/icon/forward.png" style="width:32px;height:32px;"
|
|
|
@click="onPathForward('./educationEdit',record.educationID,null,2)" />
|
|
|
- </ion-item>
|
|
|
- </ion-list>
|
|
|
- <ion-list class="canvasWrapper" v-if="curStepData.statusVal==3">
|
|
|
+ </ion-item>
|
|
|
+ <div v-show="educationList.length==0" class="grid-content" style="padding:10px 10px">
|
|
|
+ <ion-text color="tertiary">
|
|
|
+ <h6>查询无数据</h6>
|
|
|
+ </ion-text>
|
|
|
+ </div>
|
|
|
+ <ion-infinite-scroll threshold="100px" @ionInfinite="onScroll($event)">
|
|
|
+ <ion-infinite-scroll-content
|
|
|
+ :loadingText="pageParams.total>pageParams.pageIndex*pageParams.pageSize?'正在加载...':'暂无更多'"
|
|
|
+ loadingSpinner="bubbles">
|
|
|
+ </ion-infinite-scroll-content>
|
|
|
+ </ion-infinite-scroll>
|
|
|
+ </div>
|
|
|
+ <div class="panel-content" v-if="curStepData.statusVal==3">
|
|
|
<ion-item>
|
|
|
<div class="panel-title2">
|
|
|
<div class="item-flag"></div>
|
|
@@ -224,6 +236,7 @@
|
|
|
@click="onPathForward('./jobHuntEdit',null,null,3)"></ion-icon>
|
|
|
</ion-buttons>
|
|
|
</ion-item>
|
|
|
+ <!--<ion-refresher pulling-text="下拉刷新" @ionRefresh="onRefresh"></ion-refresher>-->
|
|
|
<ion-item v-for="(record,key) in jobHuntList" :key="key" >
|
|
|
<ion-label>
|
|
|
<h3>{{record.jobUserTypeStr}}</h3>
|
|
@@ -232,7 +245,18 @@
|
|
|
<img alt="" src="@/assets/icon/forward.png" class="iconBtn"
|
|
|
@click="onPathForward( './jobHuntEdit',null,record.jobHuntID,3)" />
|
|
|
</ion-item>
|
|
|
- </ion-list>
|
|
|
+ <div v-show="jobHuntList.length==0" class="grid-content" style="padding:10px 10px">
|
|
|
+ <ion-text color="tertiary">
|
|
|
+ <h6>查询无数据</h6>
|
|
|
+ </ion-text>
|
|
|
+ </div>
|
|
|
+ <ion-infinite-scroll threshold="100px" @ionInfinite="onScroll($event)">
|
|
|
+ <ion-infinite-scroll-content
|
|
|
+ :loadingText="pageParams.total>pageParams.pageIndex*pageParams.pageSize?'正在加载...':'暂无更多'"
|
|
|
+ loadingSpinner="bubbles">
|
|
|
+ </ion-infinite-scroll-content>
|
|
|
+ </ion-infinite-scroll>
|
|
|
+ </div>
|
|
|
<ion-button class="next-btn" type="submit" v-if="curStepData.statusVal!=3">下一步</ion-button>
|
|
|
<ion-button class="next-btn" @click="onFinish" v-if="curStepData.statusVal==3">完 成</ion-button>
|
|
|
</form>
|
|
@@ -246,7 +270,7 @@ import {useRoute, useRouter} from "vue-router";
|
|
|
import {required} from "@vuelidate/validators";
|
|
|
import {useVuelidate} from "@vuelidate/core";
|
|
|
import {getRegionCodeList,getStreetCodeList} from "@/api/system/area";
|
|
|
-import {getDataById,baseInfoSave} from "@/api/jobUserInfo";
|
|
|
+import {getJobUserById,baseInfoSave} from "@/api/jobUserInfo";
|
|
|
import {getEducationListByJobUserID} from "@/api/education";
|
|
|
import {getJobHuntListByJobUserID} from "@/api/jobHuntInfo";
|
|
|
import {getSiteDataList} from "@/api/siteInfo";
|
|
@@ -258,13 +282,6 @@ interface SelectProps {
|
|
|
name: string,
|
|
|
value: string
|
|
|
}
|
|
|
-interface educationModel{
|
|
|
- schoolName:string,
|
|
|
- schoolTimeStr:string,
|
|
|
- schoolTime:Date,
|
|
|
- overTimeStr:string
|
|
|
- overTime:Date
|
|
|
-}
|
|
|
interface StepParams{
|
|
|
name: string,
|
|
|
statusVal: number
|
|
@@ -296,11 +313,8 @@ export default defineComponent({
|
|
|
const provinceList = ref([{code:'440000000000000',name:'广东省'}]);
|
|
|
const regionList = ref<SelectProps[]>([]);
|
|
|
const streetList = ref<SelectProps[]>([]);
|
|
|
-
|
|
|
-
|
|
|
- const educationList = ref<educationModel[]>([]);
|
|
|
+ const educationList = ref([]);
|
|
|
const jobHuntList = ref<SelectProps[]>([]);
|
|
|
-
|
|
|
const baseInfoData = reactive({baseData:{
|
|
|
jobUserID:null,
|
|
|
siteID:null,
|
|
@@ -328,10 +342,10 @@ export default defineComponent({
|
|
|
hobby:null,
|
|
|
personalSkills:null,
|
|
|
}});
|
|
|
-
|
|
|
const pageParams = reactive({
|
|
|
pageIndex: 1,
|
|
|
- pageSize: 10,
|
|
|
+ pageSize: 5,
|
|
|
+ total:0,
|
|
|
jobUserID:''
|
|
|
});
|
|
|
const baseDataRule = computed(()=>{
|
|
@@ -360,6 +374,16 @@ export default defineComponent({
|
|
|
|
|
|
await alert.present();
|
|
|
}
|
|
|
+
|
|
|
+ const onBack = () => {
|
|
|
+ curStepData.value.statusVal-=1;
|
|
|
+ if(curStepData.value.statusVal > 0){
|
|
|
+ router.push({path:"./edit", query: {reload:0,educationID:null,jobHuntID:null,jobUserID: baseInfoData.baseData.jobUserID,status:curStepData.value.statusVal}});
|
|
|
+ }else{
|
|
|
+ router.push("./list");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
const onSave = async function (){
|
|
|
if (curStepData.value.statusVal==1){
|
|
|
const isFormCorrect = await baseDataValid.value.$validate();
|
|
@@ -369,12 +393,12 @@ export default defineComponent({
|
|
|
}
|
|
|
baseInfoSave(baseInfoData.baseData).then(result => {
|
|
|
if (result) {
|
|
|
- router.push({path: './edit', query: {reload:1,jobUserID: baseInfoData.baseData.jobUserID,status:2}});
|
|
|
+ router.push({path: './edit', query: {reload:0,jobUserID: baseInfoData.baseData.jobUserID,status:2}});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
else if (curStepData.value.statusVal==2){
|
|
|
- await router.push({path: './edit', query: {reload:1,jobUserID: baseInfoData.baseData.jobUserID,status:3}});
|
|
|
+ await router.push({path: './edit', query: {reload:0,jobUserID: baseInfoData.baseData.jobUserID,status:3}});
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -382,51 +406,48 @@ export default defineComponent({
|
|
|
router.push({path: pathValue, query: {reload:1,educationID:educationIDValue,jobHuntID:jobHuntIDValue,jobUserID: baseInfoData.baseData.jobUserID,status:statusValue}});
|
|
|
}
|
|
|
|
|
|
+ const onRefresh =() => {
|
|
|
+ pageParams.pageIndex = 1;
|
|
|
+ loadData(pageParams.jobUserID,curStepData.value.statusVal);
|
|
|
+ }
|
|
|
+
|
|
|
+ const onScroll = (e: any) => {
|
|
|
+ console.log("total",pageParams.total);
|
|
|
+ setTimeout(() => {
|
|
|
+ e.target.complete();
|
|
|
+ if (pageParams.total > pageParams.pageIndex * pageParams.pageSize) {
|
|
|
+ pageParams.pageIndex += 1;
|
|
|
+ loadData(pageParams.jobUserID,curStepData.value.statusVal);
|
|
|
+ }
|
|
|
+ }, 500);
|
|
|
+ }
|
|
|
+
|
|
|
const onFinish = () => {
|
|
|
router.push("./list");
|
|
|
}
|
|
|
|
|
|
- const onBack = () => {
|
|
|
- curStepData.value.statusVal-=1;
|
|
|
- if(curStepData.value.statusVal > 0){
|
|
|
- onPathForward("./edit",null,null,curStepData.value.statusVal);
|
|
|
- }else{
|
|
|
- router.push("./list");
|
|
|
- }
|
|
|
+ /*下拉字典查询*/
|
|
|
+ const getSelectorDataList = async function(){
|
|
|
+ const genderResult :any = await getSysDictionaryList("Gender");
|
|
|
+ genderList.value = genderResult;
|
|
|
+ const jobUserStatusResult :any = await getSysDictionaryList("JobStatus");
|
|
|
+ jobUserStatusList.value = jobUserStatusResult;
|
|
|
+ const keyPersonTypeResult :any = await getSysDictionaryList("KeyPersonType");
|
|
|
+ keyPersonTypeList.value = keyPersonTypeResult;
|
|
|
+ const cultureRankResult :any = await getSysDictionaryList("CultureLevel");
|
|
|
+ cultureRankList.value = cultureRankResult;
|
|
|
+ const userHealthResult :any = await getSysDictionaryList("Health");
|
|
|
+ userHealthList.value = userHealthResult;
|
|
|
+ const bloodTypeResult :any = await getSysDictionaryList("BloodType");
|
|
|
+ bloodTypeList.value = bloodTypeResult;
|
|
|
+ const maritalStatusResult :any = await getSysDictionaryList("MaritalStatus");
|
|
|
+ maritalStatusList.value = maritalStatusResult;
|
|
|
}
|
|
|
|
|
|
const getSiteInfoList = async function(){
|
|
|
const siteInfoResult :any = await getSiteDataList();
|
|
|
siteInfoList.value = siteInfoResult;
|
|
|
}
|
|
|
- const getGenderList = async function(){
|
|
|
- const data :any = await getSysDictionaryList("Gender");
|
|
|
- genderList.value = data;
|
|
|
- }
|
|
|
- const getJobUserStatusList = async function() {
|
|
|
- const data :any = await getSysDictionaryList("JobStatus");
|
|
|
- jobUserStatusList.value = data;
|
|
|
- }
|
|
|
- const getKeyPersonTypeList = async function() {
|
|
|
- const data :any = await getSysDictionaryList("KeyPersonType");
|
|
|
- keyPersonTypeList.value = data;
|
|
|
- }
|
|
|
- const getCultureRankList = async function(){
|
|
|
- const data :any = await getSysDictionaryList("CultureLevel");
|
|
|
- cultureRankList.value = data;
|
|
|
- }
|
|
|
- const getHealthTypeList = async function(){
|
|
|
- const data :any = await getSysDictionaryList("Health");
|
|
|
- userHealthList.value = data;
|
|
|
- }
|
|
|
- const getBloodTypeList = async function(){
|
|
|
- const data :any = await getSysDictionaryList("BloodType");
|
|
|
- bloodTypeList.value = data;
|
|
|
- }
|
|
|
- const getMaritalStatusList = async function(){
|
|
|
- const data :any = await getSysDictionaryList("MaritalStatus");
|
|
|
- maritalStatusList.value = data;
|
|
|
- }
|
|
|
const getRegionList = async function(){
|
|
|
const regionResult: any = await getRegionCodeList();
|
|
|
regionList.value = regionResult;
|
|
@@ -449,26 +470,25 @@ export default defineComponent({
|
|
|
|
|
|
const loadData = async (jobUserID: any,status:any) => {
|
|
|
pageParams.jobUserID = jobUserID;
|
|
|
- console.log("当前jobUserID",pageParams);
|
|
|
baseInfoData.baseData.jobUserID = jobUserID;
|
|
|
curStepData.value.statusVal = status;
|
|
|
+ console.log("当前jobUserID",jobUserID);
|
|
|
if(curStepData.value.statusVal==1){
|
|
|
- const reqData = await getDataById(jobUserID);
|
|
|
+ const reqData = await getJobUserById(jobUserID);
|
|
|
baseInfoData.baseData = reqData;
|
|
|
console.log('baseData',baseInfoData.baseData);
|
|
|
await getStreetList();
|
|
|
}
|
|
|
else if(curStepData.value.statusVal==2){
|
|
|
- const data :any = await getEducationListByJobUserID(pageParams);
|
|
|
- educationList.value = data.list;
|
|
|
- educationList.value.map(item=>{
|
|
|
- item.schoolTimeStr = dayjs(item.schoolTime).format('YYYY-MM-DD');
|
|
|
- item.overTimeStr = dayjs(item.overTime).format('YYYY-MM-DD');
|
|
|
- })
|
|
|
+ const reqData :any = await getEducationListByJobUserID(pageParams);
|
|
|
+ educationList.value = reqData.list;
|
|
|
+ pageParams.total = reqData.total;
|
|
|
+ console.log("educationList",educationList.value);
|
|
|
}
|
|
|
else if(curStepData.value.statusVal==3){
|
|
|
const reqData = await getJobHuntListByJobUserID(pageParams);
|
|
|
jobHuntList.value= reqData.list;
|
|
|
+ pageParams.total = reqData.total;
|
|
|
console.log("jobHuntList",jobHuntList.value);
|
|
|
}
|
|
|
};
|
|
@@ -481,6 +501,7 @@ export default defineComponent({
|
|
|
|
|
|
const reload = (jobUserID:any,status:any) => {
|
|
|
expand.value = false;
|
|
|
+ onRefresh();
|
|
|
loadData(jobUserID,status);
|
|
|
}
|
|
|
|
|
@@ -493,10 +514,13 @@ export default defineComponent({
|
|
|
...toRefs(baseInfoData),
|
|
|
arrowBackOutline,
|
|
|
addCircleOutline,
|
|
|
- editForm,
|
|
|
+ route,
|
|
|
+ router,
|
|
|
expand,
|
|
|
- curStepData,
|
|
|
+ editForm,
|
|
|
stepList,
|
|
|
+ curStepData,
|
|
|
+ baseDataValid,
|
|
|
siteInfoList,
|
|
|
genderList,
|
|
|
pageParams,
|
|
@@ -517,33 +541,21 @@ export default defineComponent({
|
|
|
onSave,
|
|
|
onBack,
|
|
|
onFinish,
|
|
|
+ onRefresh,
|
|
|
+ onScroll,
|
|
|
onPathForward,
|
|
|
loadData,
|
|
|
reload,
|
|
|
- route,
|
|
|
- router,
|
|
|
- baseDataValid,
|
|
|
getSiteInfoList,
|
|
|
- getGenderList,
|
|
|
- getJobUserStatusList,
|
|
|
- getKeyPersonTypeList,
|
|
|
- getCultureRankList,
|
|
|
- getHealthTypeList,
|
|
|
- getBloodTypeList,
|
|
|
- getMaritalStatusList,
|
|
|
+ getSelectorDataList,
|
|
|
getRegionList,
|
|
|
- getStreetList
|
|
|
+ getStreetList,
|
|
|
+ dayjs
|
|
|
}
|
|
|
},
|
|
|
mounted(){
|
|
|
this.getSiteInfoList();
|
|
|
- this.getGenderList();
|
|
|
- this.getJobUserStatusList();
|
|
|
- this.getKeyPersonTypeList();
|
|
|
- this.getCultureRankList();
|
|
|
- this.getHealthTypeList();
|
|
|
- this.getBloodTypeList();
|
|
|
- this.getMaritalStatusList();
|
|
|
+ this.getSelectorDataList();
|
|
|
this.getRegionList();
|
|
|
this.getStreetList();
|
|
|
const jobUserID = this.route.query.jobUserID;
|