فهرست منبع

Merge branch 'master' of http://114.55.67.98:8070/Natural_p1/zjugis_OA

songxy 1 سال پیش
والد
کامیت
aa13653d6b

+ 16 - 14
client/src/views/OaSystem/financialManagement/bzjglDeptPage/index.vue

@@ -243,20 +243,22 @@ const getOverview = async () => {
     queryParams.applyOff = moment(applyDate.value[1]).format('YYYY-MM-DD')
     queryParams.applyOff = moment(applyDate.value[1]).format('YYYY-MM-DD')
   }
   }
   const data = await UseMoneyApi.getUseMoneyOverviewHx(queryParams)
   const data = await UseMoneyApi.getUseMoneyOverviewHx(queryParams)
-  if (data.totalAmount > 100000) {
-    infoList.value[0].num = data.totalAmount / 10000
-    infoList.value[1].num = data.totalUseAmount / 10000
-    infoList.value[2].num = data.totalApplyAmount / 10000
-    infoList.value[0].name = '保证金总金额(万元)'
-    infoList.value[1].name = '已核销总金额(万元)'
-    infoList.value[2].name = '未核销总金额(万元)'
-  } else {
-    infoList.value[0].num = data.totalAmount
-    infoList.value[1].num = data.totalUseAmount
-    infoList.value[2].num = data.totalApplyAmount
-    infoList.value[0].name = '保证金总金额(元)'
-    infoList.value[1].name = '已核销总金额(元)'
-    infoList.value[2].name = '未核销总金额(元)'
+  if (data) {
+    if (data.totalAmount > 100000) {
+      infoList.value[0].num = data.totalAmount / 10000
+      infoList.value[1].num = data.totalUseAmount / 10000
+      infoList.value[2].num = data.totalApplyAmount / 10000
+      infoList.value[0].name = '保证金总金额(万元)'
+      infoList.value[1].name = '已核销总金额(万元)'
+      infoList.value[2].name = '未核销总金额(万元)'
+    } else {
+      infoList.value[0].num = data.totalAmount
+      infoList.value[1].num = data.totalUseAmount
+      infoList.value[2].num = data.totalApplyAmount
+      infoList.value[0].name = '保证金总金额(元)'
+      infoList.value[1].name = '已核销总金额(元)'
+      infoList.value[2].name = '未核销总金额(元)'
+    }
   }
   }
 }
 }
 const formRef = ref()
 const formRef = ref()

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/response/ContractMessageResponse.java

@@ -54,4 +54,6 @@ public class ContractMessageResponse {
     private String contractInvoiceId;
     private String contractInvoiceId;
 
 
     private String invoiceInstanceId;
     private String invoiceInstanceId;
+
+    private String projectId;
 }
 }

+ 13 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/interview/controller/InterviewController.java

@@ -51,6 +51,19 @@ public class InterviewController extends BaseController {
     }
     }
 
 
 
 
+    /**
+     * 面试记录表单生成 钉钉端
+     */
+    @WorkFlow(isReceiveMaterial = true, isReceiveOpinion = true)
+    @ResponseBody
+    @GetMapping("/mobileIndex")
+    @Operation(summary = "面试记录表单生成")
+    public String mobileIndex(String activityTemplateId, String flowInstanceId, String userId) throws Exception {
+        Map<String, Object> map = interviewService.getFormParams(flowInstanceId);
+        return resultPage(map);
+    }
+
+
     /**
     /**
      * 面试记录列表查询
      * 面试记录列表查询
      */
      */

+ 12 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/controller/RecruitDemandController.java

@@ -49,6 +49,18 @@ public class RecruitDemandController extends BaseController {
         return resultPage(map);
         return resultPage(map);
     }
     }
 
 
+    /**
+     * 招聘需求表单生成
+     */
+    @WorkFlow(isReceiveMaterial = true, isReceiveOpinion = true)
+    @ResponseBody
+    @GetMapping("/mobileIndex")
+    @Operation(summary = "招聘需求表单生成")
+    public String mobileIndex(String activityTemplateId, String flowInstanceId, String userId) throws Exception {
+        Map<String, Object> map = recruitDemandService.getFormParams(flowInstanceId);
+        return resultPage(map);
+    }
+
     /**
     /**
      * 招聘需求申请列表查询
      * 招聘需求申请列表查询
      */
      */

+ 3 - 1
zjugis-business/src/main/java/com/zjugis/business/service/impl/ContractServiceImpl.java

@@ -190,7 +190,9 @@ public class ContractServiceImpl implements ContractService{
             UseMoneyBondVO qualityMoney = useMoneyDetailService.getBondData(dbParent.getProjectId());
             UseMoneyBondVO qualityMoney = useMoneyDetailService.getBondData(dbParent.getProjectId());
             ContractResponse r = new ContractResponse();
             ContractResponse r = new ContractResponse();
             if(qualityMoney!= null){
             if(qualityMoney!= null){
-                r.setQualityMoney(new BigDecimal(String.valueOf(qualityMoney.getTotalAmount())));
+                if(qualityMoney.getTotalAmount() != null){
+                    r.setQualityMoney(new BigDecimal(String.valueOf(qualityMoney.getTotalAmount())));
+                }
                 r.setQualityMoneyStatus(qualityMoney.getIWriteOff());
                 r.setQualityMoneyStatus(qualityMoney.getIWriteOff());
             }
             }
             BeanUtils.copyProperties(dbParent, r);
             BeanUtils.copyProperties(dbParent, r);

+ 4 - 3
zjugis-business/src/main/resources/mapper/oracle/ContractMessageMapper.xml

@@ -3,9 +3,10 @@
 <mapper namespace="com.zjugis.business.mapper.ContractMessageMapper">
 <mapper namespace="com.zjugis.business.mapper.ContractMessageMapper">
 
 
     <select id="page" resultType="com.zjugis.business.bean.response.ContractMessageResponse">
     <select id="page" resultType="com.zjugis.business.bean.response.ContractMessageResponse">
-        SELECT cm.*,T2.ID as contractInvoiceId,T2.INSTANCE_ID as invoiceInstanceId FROM CONTRACT_MESSAGE cm
+        SELECT cm.*,T2.ID as contractInvoiceId,T2.INSTANCE_ID as invoiceInstanceId,T3.PROJECT_ID as projectId FROM CONTRACT_MESSAGE cm
         LEFT JOIN CONTRACT_RETURN_MONEY T1 on T1.ID = cm.BUSINESS_ID and cm.MESSAGE_TYPE = 2
         LEFT JOIN CONTRACT_RETURN_MONEY T1 on T1.ID = cm.BUSINESS_ID and cm.MESSAGE_TYPE = 2
-        LEFT JOIN CONTRACT_INVOICE_ID T2 on T2.ID = T1.CONTRACT_INVOICE_ID
+        LEFT JOIN CONTRACT_INVOICE T2 on T2.ID = T1.CONTRACT_INVOICE_ID
+        LEFT JOIN CONTRACT T3 on T3.ID = cm.CONTRACT_ID and cm.MESSAGE_TYPE = 1
         <if test="params != null and params.deptId != null and params.deptId != ''">
         <if test="params != null and params.deptId != null and params.deptId != ''">
             RIGHT JOIN CONTRACT c ON c.ID = cm.CONTRACT_ID
             RIGHT JOIN CONTRACT c ON c.ID = cm.CONTRACT_ID
             RIGHT JOIN PROJECT p ON p.ID = c.PROJECT_ID
             RIGHT JOIN PROJECT p ON p.ID = c.PROJECT_ID
@@ -25,6 +26,6 @@
                 AND AM.AREA_MANAGER_ID = #{params.managerId}
                 AND AM.AREA_MANAGER_ID = #{params.managerId}
             </if>
             </if>
         </where>
         </where>
-        ORDER BY CREATE_TIME DESC
+        ORDER BY cm.CREATE_TIME DESC
     </select>
     </select>
 </mapper>
 </mapper>

+ 3 - 1
zjugis-business/src/main/resources/mapper/oracle/UseMoneyDetailMapper.xml

@@ -11,6 +11,8 @@
         from
         from
         WF_USE_MONEY_DETAIL T
         WF_USE_MONEY_DETAIL T
         left join  WF_USE_MONEY T1 ON T.USE_MONEY_ID=T1.ID
         left join  WF_USE_MONEY T1 ON T.USE_MONEY_ID=T1.ID
-        where PROJECT_ID=#{projectId} and T.COST_TYPE='1401' and T1.FLOW_STATUS=90 AND T1.ISVALID = 1 AND T2.ISVALID = 1
+        where (T.PROJECT_ID=#{projectId} or T1.PROJECT_ID=#{projectId})
+
+          and T.COST_TYPE='1401' and T1.FLOW_STATUS=90 AND T1.ISVALID = 1 AND T.ISVALID = 1
     </select>
     </select>
 </mapper>
 </mapper>

+ 403 - 0
zjugis-business/src/main/resources/templates/Interview/mobileIndex.ftl

@@ -0,0 +1,403 @@
+<@wm.workFlowMobile javascripts=['/Interview/js/index.js']>
+    <style>
+        /**flowMobileCSS样式文件容器**/
+        .flowMobile {
+            overflow: hidden;
+            overflow-y: auto;
+            height: 100%;
+        }
+    </style>
+    <div class="flowMobile">
+        <div class="z-comp-tab" name="tab">
+            <ul class="z-tab-bar">
+                <li z-tabindex="0" class="on"><a>基础信息</a></li>
+                <li z-tabindex="1"><a>收件材料</a></li>
+                <li z-tabindex="2" class=""><a>审批意见</a></li>
+            </ul>
+            <div class="z-tab-scroll">
+                <div class="z-tab-content on">
+                    <div class="z-form-wrap" name="createReqVO">
+                        <div class="z-form-row" style="display: none;">
+                            <input type="text" value="${formEntity.instanceId!}" name="createReqVO$instanceId">
+                            <input type="text" value="${formEntity.id!}" name="createReqVO$id">
+                            <input type="text" value="${formEntity.loginName!}" name="createReqVO$loginName">
+                        </div>
+
+                        <div style="font-size: 15px;">
+                            <div class="form-icon">
+                                <img src="/imgs/titleIcon.png" alt="">
+                                <span>基本信息</span>
+                            </div>
+                        </div>
+                        <br>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">员工名称</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-inputsearch" name="createReqVO$nickname" data='${resign!}'>
+                                    <div class="z-inputselect-bar">
+                                        <input type="text" placeholder="姓名或工号"
+                                               value="${formEntity.nickname!}"><i></i>
+                                    </div>
+                                    <input type="hidden" name="createReqVO$userId" value="${formEntity.userId!}"><i></i>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">面试时间</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-date" name="createReqVO$mssj">
+                                    <input type="text" value="${(formEntity.mssj?date)!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">性别</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-select" name="createReqVO$sex" data='${sex_type!}'
+                                     value="${formEntity.sex!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">身份证号</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-input" name="createReqVO$sfzh">
+                                    <input type="text" value="${formEntity.sfzh!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">应聘岗位</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-select z-readonly" name="createReqVO$ypgw" data='${post_type!}'
+                                     value="${formEntity.ypgw!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">应聘部门</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-input z-readonly" name="createReqVO$sfzh">
+                                    <input type="text" name="createReqVO$deptName" value="${formEntity.deptName!}">
+                                </div>
+                                <input type="hidden" name="createReqVO$deptId" value="${formEntity.deptId!}">
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-40">证件交验情况</div>
+                            <div class="z-form-control z-col-60">
+                                <div class="z-comp-checkbox" name="createReqVO$v1">
+                                    <div class="z-checkbox-item <#if (formEntity.zjjy!)? contains(",1,")>checked</#if>"
+                                         value="1"><i></i>学历证书
+                                    </div>
+                                </div>
+                                <div class="z-comp-checkbox" name="createReqVO$v2">
+                                    <div class="z-checkbox-item <#if (formEntity.zjjy!)? contains(",2,")>checked</#if>"
+                                         value="2"><i></i>学位证书
+                                    </div>
+                                </div>
+                                <div class="z-comp-checkbox" name="createReqVO$v3">
+                                    <div class="z-checkbox-item <#if (formEntity.zjjy!)? contains(",3,")>checked</#if>"
+                                         value="3"><i></i>资格证书
+                                    </div>
+                                </div>
+
+                                <div class="z-comp-checkbox" name="createReqVO$v4">
+                                    <div class="z-checkbox-item <#if (formEntity.zjjy!)? contains(",4,")>checked</#if>"
+                                         value="4"><i></i>身份证
+                                    </div>
+                                </div>
+                                <div class="z-comp-checkbox" name="createReqVO$v5">
+                                    <div class="z-checkbox-item <#if (formEntity.zjjy!)? contains(",5,")>checked</#if>"
+                                         value="5"><i></i>个人简历
+                                    </div>
+                                </div>
+                                <div class="z-comp-checkbox" name="createReqVO$v6">
+                                    <div class="z-checkbox-item <#if (formEntity.zjjy!)? contains(",6,")>checked</#if>"
+                                         value="6"><i></i>学生证原/复印件
+                                    </div>
+                                </div>
+                                <div class="z-comp-checkbox" name="createReqVO$v7">
+                                    <div class="z-checkbox-item <#if (formEntity.zjjy!)? contains(",7,")>checked</#if>"
+                                         value="7"><i></i>其他材料
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+
+                        <br>
+                        <br>
+                        <div style="font-size: 15px;">
+
+                            <div class="form-icon">
+                                <img src="/imgs/titleIcon.png" alt="">
+                                <span>初始测评结果(分数)</span>
+                            </div>
+
+                        </div>
+                        <br>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">仪容仪表</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$yrybf"
+                                     data='${point_standard!}' value="${formEntity.yrybf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$yrybp">
+                                    <input type="text" placeholder="评语" value="${formEntity.yrybp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">说服力</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$sflf"
+                                     data='${point_standard!}' value="${formEntity.sflf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$sflp">
+                                    <input type="text" placeholder="评语" value="${formEntity.sflp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">商务礼仪</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$swlyf"
+                                     data='${point_standard!}' value="${formEntity.swlyf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$swlyp">
+                                    <input type="text" placeholder="评语" value="${formEntity.swlyp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">抗压性</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$kyxf"
+                                     data='${point_standard!}' value="${formEntity.kyxf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$kyxp">
+                                    <input type="text" placeholder="评语" value="${formEntity.kyxp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">沟通</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$gtf"
+                                     data='${point_standard!}' value="${formEntity.gtf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$gtp">
+                                    <input type="text" placeholder="评语" value="${formEntity.gtp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">出差</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$ccf"
+                                     data='${point_standard!}' value="${formEntity.ccf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$ccp">
+                                    <input type="text" placeholder="评语" value="${formEntity.ccp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">态度</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$tdf"
+                                     data='${point_standard!}' value="${formEntity.tdf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$tdp">
+                                    <input type="text" placeholder="评语" value="${formEntity.tdp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">学习力</div>
+                            <div class="z-form-control z-col-20">
+                                <div class="z-comp-select" name="createReqVO$xxlf"
+                                     data='${point_standard!}' value="${formEntity.xxlf!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="z-form-label z-col-50">
+                                <div class="z-comp-input" name="createReqVO$xxlp">
+                                    <input type="text" placeholder="评语" value="${formEntity.xxlp!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <br>
+                        <br>
+                        <div style="font-size: 15px;">
+
+                            <div class="form-icon">
+                                <img src="/imgs/titleIcon.png" alt="">
+                                <span>面试结果</span>
+                            </div>
+
+                        </div>
+                        <br>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">用工性质</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-input" name="createReqVO$ygxz">
+                                    <input type="text" value="${formEntity.ygxz!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">等级初定</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-select" name="createReqVO$djcd"
+                                     data='${ABILITY_LEVEL!}' value="${formEntity.djcd!}">
+                                    <div class="z-inputselect-bar">
+                                        <span></span><i></i>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+
+
+                            <div class="z-form-label z-col-40">试用基本薪资(元)</div>
+                            <div class="z-form-control z-col-60">
+                                <div class="z-comp-input" name="createReqVO$syjbyx">
+                                    <input type="text" value="${formEntity.syjbyx!}">
+                                </div>
+                            </div>
+
+                        </div>
+
+                        <div class="z-form-row">
+
+                            <div class="z-form-label z-col-40">试用绩效(元)</div>
+                            <div class="z-form-control z-col-60">
+                                <div class="z-comp-input" name="createReqVO$syjx">
+                                    <input type="text" value="${formEntity.syjx!}">
+                                </div>
+                            </div>
+
+                        </div>
+
+                        <div class="z-form-row">
+
+                            <div class="z-form-label z-col-30">报道日期</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-date" name="createReqVO$bdrq">
+                                    <input type="text" value="${(formEntity.bdrq?date)!}">
+                                </div>
+                            </div>
+
+                        </div>
+
+                        <div class="z-form-row">
+
+                            <div class="z-form-label z-col-30">试用期(月)</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-input" name="createReqVO$syq">
+                                    <input type="number" value="${formEntity.syq!}">
+                                </div>
+                            </div>
+
+                        </div>
+
+                        <div class="z-form-row">
+
+                            <div class="z-form-label z-col-30">拟定劳务期(年)</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-input" name="createReqVO$lwq">
+                                    <input type="number" value="${formEntity.lwq!}">
+                                </div>
+                            </div>
+
+                        </div>
+
+
+                    </div>
+                </div>
+                <div class="z-tab-content">
+                    <!--收件材料模板-->
+                    <#if WORKFLOW.MATERIALS??>
+                        ${WORKFLOW.MATERIALS!}
+                    </#if>
+                </div>
+                <div class="z-tab-content">
+                    <!--审批意见模板-->
+                    <#if WORKFLOW.OPINION??>
+                        ${WORKFLOW.OPINION!}
+                    </#if>
+                </div>
+            </div>
+        </div>
+    </div>
+    <script>
+        window.userConfig = {
+            url: '${url!}'
+        }
+    </script>
+</@wm.workFlowMobile>

+ 314 - 0
zjugis-business/src/main/resources/templates/RecruitDemand/js/mobileIndex.js

@@ -0,0 +1,314 @@
+(function () {
+    let isTimes = []
+    let read = z.ui.comm.getUrlParam("read");
+    window.onload = function (ex) {
+
+        let timeObject = document.querySelector('#timeObject')
+        let arrays = JSON.parse(timeObject.value)//存在的列表详情
+        $("#addData").click(function () {
+            let obj = {
+                post: "",
+                requireNum: "",
+                recruitNum: "",
+                jobRequest: "",
+                postDuty: "",
+                remark: "",
+                type: "",
+            }
+
+            isTimes.push(obj)
+            generateTableTrHtml(isTimes.length - 1)
+            buildQjsjSeq();
+        })
+
+        bindEvents();
+
+        if (arrays.length > 0) {
+            for (let i = 0; i < arrays.length; i++) {
+                let obj = {
+                    post: arrays[i].post ? arrays[i].post : '',
+                    requireNum: arrays[i].requireNum ? arrays[i].requireNum : '',
+                    recruitNum: arrays[i].recruitNum ? arrays[i].recruitNum : '',
+                    jobRequest: arrays[i].jobRequest ? arrays[i].jobRequest : '',
+                    postDuty: arrays[i].postDuty ? arrays[i].postDuty : '',
+                    remark: arrays[i].remark ? arrays[i].remark : '',
+                    type: arrays[i].type ? arrays[i].type : '',
+                }
+                isTimes.push(obj)
+            }
+            updateView()
+        }
+    }
+
+    function updateView() {
+        let tbodyQjsq = document.querySelector('.tbodyQjsq')
+        let html = ''
+        let dictJson1 = document.querySelector('#dictJson1').value
+        let dictJson2 = document.querySelector('#dictJson2').value
+        for (let i = 0; i < isTimes.length; i++) {
+            html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff"> <td name="qjsj_seq">' + (i + 1) + '</td>'
+                + '<td>'/*岗位*/
+                + '<div class="form-item">'
+                + '<div class="z-comp-select" data =\' ' + dictJson1 + '\'  name="RecruitDetailDO[' + i + ']$post">'
+                + '<div class="z-inputselect-bar">'
+                + '<span></span><i></i>'
+                + '</div>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'/*需求人数*/
+                + '<div class="form-item">'
+                + '<div class="z-comp-input" name="RecruitDetailDO[' + i + ']$requireNum">'
+                + '<input type="number" value="' + isTimes[i].requireNum + '">'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'/*已招人数*/
+                + '<div class="form-item">'
+                + '<div class="z-comp-input" name="RecruitDetailDO[' + i + ']$recruitNum">'
+                + '<input type="number" value="' + isTimes[i].recruitNum + '">'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'/*任职要求*/
+                + '<div class="form-item" >'
+                + '<div class="z-comp-textarea" name="RecruitDetailDO[' + i + ']$jobRequest">'
+                + '<textarea></textarea>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'/*岗位职责*/
+                + '<div class="form-item">'
+                + '<div class="z-comp-textarea" name="RecruitDetailDO[' + i + ']$postDuty">'
+                + '<textarea></textarea>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'/*落实情况*/
+                + '<div class="form-item">'
+                + '<div class="z-comp-textarea" name="RecruitDetailDO[' + i + ']$remark">'
+                + '<textarea></textarea>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'/*所属类别*/
+                + '<div class="form-item">'
+                + '<div class="z-comp-select" data =\' ' + dictJson2 + '\'  name="RecruitDetailDO[' + i + ']$type">'
+                + '<div class="z-inputselect-bar">'
+                + '<span></span><i></i>'
+                + '</div>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'
+                + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
+                + '<span>删除</span>'
+                + '</div>'
+                + '</td>';
+        }
+        tbodyQjsq.innerHTML = html
+        for (let i = 0; i < isTimes.length; i++) {
+            z.ui.textarea("[name='RecruitDetailDO[" + i + "]$jobRequest']").setValue(isTimes[i].jobRequest);
+            z.ui.textarea("[name='RecruitDetailDO[" + i + "]$postDuty']").setValue(isTimes[i].postDuty);
+            z.ui.textarea("[name='RecruitDetailDO[" + i + "]$remark']").setValue(isTimes[i].remark);
+            z.ui.select("[name='RecruitDetailDO[" + i + "]$post']").init();
+            z.ui.select("[name='RecruitDetailDO[" + i + "]$post']").setValue(isTimes[i].post + "");
+            z.ui.select("[name='RecruitDetailDO[" + i + "]$type']").init();
+            z.ui.select("[name='RecruitDetailDO[" + i + "]$type']").setValue(isTimes[i].type + "");
+            $("#delBtn_" + i).click(function () {
+                var index = this.id.substring(this.id.indexOf("_") + 1)
+                z.ui.confirm("compid").init({
+                    content: "确定删除吗?",
+                    onConfirm: function () {
+                        var element = document.getElementById("qjsj_" + index);
+                        element.remove();
+                        buildQjsjSeq();
+                    },
+                    onCancel: function () {
+
+                    }
+                })
+
+            })
+
+
+            if (read === '1') {
+                detailReadonly(i)
+            }
+        }
+
+    }
+
+
+    function buildQjsjSeq() {
+        let elementsByName = document.getElementsByName("qjsj_seq");
+        for (let i = 0; i < elementsByName.length; i++) {
+            const seqElement = elementsByName[i];
+            seqElement.innerHTML = i + 1;
+        }
+    }
+
+
+    //注册业务保存事件
+    function bindEvents() {
+        z.workflow.saveBtn.addListener("onSaveClick", saveForm);
+    }
+
+
+    //手动列表添加只读效果
+    function detailReadonly(i) {
+        $("#delBtn_" + i).css("display", "none");
+        //设置只读属性
+        $("[name='RecruitDetailDO\\[" + i + "\\]\\$post']").addClass("z-readonly");
+        $("[name='RecruitDetailDO\\[" + i + "\\]\\$type']").addClass("z-readonly");
+
+        //设置输入框鼠标不可选
+        $("[name='RecruitDetailDO\\[" + i + "\\]\\$post']").css("pointer-events", "none");
+        $("[name='RecruitDetailDO\\[" + i + "\\]\\$type']").css("pointer-events", "none");
+
+
+        //获取input输入框并把所有input框变成不可选
+        let detailElement = document.getElementById("qjsj_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        let detailTextarea = detailElement.getElementsByTagName("textarea");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = true;
+            detailInput[j].className += "z-readonly"
+        }
+        for (let j = 0; j < detailTextarea.length; j++) {
+            detailTextarea[j].disabled = true;
+            detailTextarea[j].className += "z-readonly"
+        }
+    }
+
+    /*
+  * all 工作流js传递到业务的参数 success执行的方法
+  * istransfer 工作流js传递到业务的参数 是否转件
+  * */
+    function saveForm(all, istransfer) {
+        var postData = z.ui.form.getFormFields($("[name=createReqVO]"));
+        if (postData === false) {
+            all({success: false});
+            return;
+        }
+        var detail = []
+        for (let key of Object.keys(postData)) {
+            let mealName = postData[key];
+            if (key.startsWith("RecruitDetailDO")) {
+                detail.push(z.ui.form.childStringify(mealName));
+            }
+        }
+        postData.createReqVO.detail = detail;
+        z.ui.ajax({
+            type: "post",
+            url: "/recruit/update",
+            data: JSON.stringify(postData.createReqVO),
+            contentType: "application/json",
+            success: function () {
+                all({success: true});
+            },
+            error: function () {
+                all({success: false});
+            }
+        })
+    }
+
+
+    /**
+     * 页面生成并获取map中的数据
+     * @param index
+     * @returns {HTMLTableRowElement}
+     */
+    function generateTableTrHtml(index) {
+        let dictJson1 = document.querySelector('#dictJson1').value
+        let dictJson2 = document.querySelector('#dictJson2').value
+        var trDom = document.createElement("tr");
+        trDom.style.backgroundColor = "#fff";
+        trDom.id = "qjsj_" + index;
+        trDom.className = 'qjsjClass'
+        trDom.innerHTML = '<td name="qjsj_seq">' + (index + 1) + '</td>'
+            + '<td>'/*岗位*/
+            + '<div class="form-item">'
+            + '<div class="z-comp-select" data =\' ' + dictJson1 + '\'  name="RecruitDetailDO[' + index + ']$post">'
+            + '<div class="z-inputselect-bar">'
+            + '<span></span><i></i>'
+            + '</div>'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'/*需求人数*/
+            + '<div class="form-item">'
+            + '<div class="z-comp-input" name="RecruitDetailDO[' + index + ']$requireNum">'
+            + '<input type="number" value="">'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'/*已招人数*/
+            + '<div class="form-item">'
+            + '<div class="z-comp-input" name="RecruitDetailDO[' + index + ']$recruitNum">'
+            + '<input type="number" value="">'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'/*任职要求*/
+            + '<div class="form-item" >'
+            + '<div class="z-comp-textarea" name="RecruitDetailDO[' + index + ']$jobRequest">'
+            + '<textarea></textarea>'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'/*岗位职责*/
+            + '<div class="form-item">'
+            + '<div class="z-comp-textarea" name="RecruitDetailDO[' + index + ']$postDuty">'
+            + '<textarea></textarea>'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'/*落实情况*/
+            + '<div class="form-item">'
+            + '<div class="z-comp-textarea" name="RecruitDetailDO[' + index + ']$remark">'
+            + '<textarea></textarea>'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'/*所属类别*/
+            + '<div class="form-item">'
+            + '<div class="z-comp-select" data =\' ' + dictJson2 + '\'  name="RecruitDetailDO[' + index + ']$type">'
+            + '<div class="z-inputselect-bar">'
+            + '<span></span><i></i>'
+            + '</div>'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
+            + '<span>删除</span>'
+            + '</div>'
+            + '</td>';
+        let trFragment = document.createDocumentFragment();
+        trFragment.appendChild(trDom);
+        $(".tbody").append(trFragment)
+        z.ui.select("[name='RecruitDetailDO[" + index + "]$post']").init();
+        z.ui.select("[name='RecruitDetailDO[" + index + "]$post']").setValue(isTimes[index].post);
+        z.ui.select("[name='RecruitDetailDO[" + index + "]$type']").init();
+        z.ui.select("[name='RecruitDetailDO[" + index + "]$type']").setValue(isTimes[index].type);
+        $("#delBtn_" + index).click(function () {
+            z.ui.confirm("compid").init({
+                content: "确定删除吗?",
+                onConfirm: function () {
+                    var element = document.getElementById("qjsj_" + index);
+                    element.remove();
+                    buildQjsjSeq();
+                    isTimes.splice(index, 1)
+                    updateView()
+
+                },
+                onCancel: function () {
+
+                }
+            })
+
+        })
+    }
+}());
+

+ 88 - 0
zjugis-business/src/main/resources/templates/RecruitDemand/mobileIndex.ftl

@@ -0,0 +1,88 @@
+<@wm.workFlowMobile javascripts=['/RecruitDemand/js/mobileIndex.js','/js/moment.js']>
+    <style>
+        /**flowMobileCSS样式文件容器**/
+        .flowMobile {
+            overflow: hidden;
+            overflow-x: hidden;
+            overflow-y: auto;
+            height: 100%;
+        }
+    </style>
+    <div class="flowMobile">
+        <div class="z-comp-tab" name="tab">
+            <ul class="z-tab-bar">
+                <li z-tabindex="0" class="on"><a>基础信息</a></li>
+                <li z-tabindex="1"><a>收件材料</a></li>
+                <li z-tabindex="2" class=""><a>审批意见</a></li>
+            </ul>
+            <div class="z-tab-scroll">
+                <div class="z-tab-content on">
+                    <div class="z-form-wrap" name="createReqVO">
+                        <div class="z-form-row" style="display: none;">
+                            <input type="text" value="${formEntity.instanceId!}" name="createReqVO$instanceId">
+                            <input type="text" value="${formEntity.id!}" name="createReqVO$id">
+                            <input type="text" value='${timeObject!}' id="timeObject">
+                            <input type="text" value='${dictJson1!}' id="dictJson1">
+                            <input type="text" value='${dictJson2!}' id="dictJson2">
+                        </div>
+
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">申请人</div>
+                            <div class="z-form-control z-col-70">
+                                <div class="z-comp-input z-readonly" name="createReqVO$userNickname">
+                                    <input type="text" value="${formEntity.userNickname!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="z-form-row">
+                            <div class="z-form-label z-col-30">所在部门</div>
+                            <div class="z-form-control z-col-70 z-form-table">
+                                <div class="z-comp-input z-readonly" name="createReqVO$deptName">
+                                    <input type="text" value="${formEntity.deptName!}">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="qjsjxx-box">
+                            <table class="z-form-table">
+                                <thead>
+                                <tr>
+                                    <td style="width: 2%;"></td>
+                                    <td style="width: 12%;">岗位</td>
+                                    <td style="width: 8%;">需求人数</td>
+                                    <td style="width: 8%;">已招人数</td>
+                                    <td style="width: 15%;">任职要求</td>
+                                    <td style="width: 15%;">岗位职责</td>
+                                    <td style="width: 15%;">落实情况</td>
+                                    <td style="width: 15%;">所属类别</td>
+                                </tr>
+                                </thead>
+                                <tbody class="tbody tbodyQjsq"></tbody>
+                            </table>
+                        </div>
+
+                    </div>
+                </div>
+                <div class="z-tab-content">
+                    <!--收件材料模板-->
+                    <#if WORKFLOW.MATERIALS??>
+                        ${WORKFLOW.MATERIALS!}
+                    </#if>
+                </div>
+                <div class="z-tab-content">
+                    <!--审批意见模板-->
+                    <#if WORKFLOW.OPINION??>
+                        ${WORKFLOW.OPINION!}
+                    </#if>
+                </div>
+            </div>
+        </div>
+    </div>
+    <script>
+        window.userConfig = {
+            url: '${url!}'
+        }
+    </script>
+</@wm.workFlowMobile>