瀏覽代碼

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

qiny 11 月之前
父節點
當前提交
b42321b68f

+ 24 - 1
client/src/components/Tinymce/Tinymce.vue

@@ -153,7 +153,30 @@ const initOptions = computed(() => {
     skin: 'oxide',
     skin_url: '/resource/tinymce/skins/ui/oxide',
     content_css: '/resource/tinymce/skins/ui/oxide/content.min.css',
-    media_upload_handler() {},
+    media_filter_html: false,
+    video_template_callback: function (data) {
+      return (
+        '<video preload="auto" width="' +
+        data.width +
+        '" height="' +
+        data.height +
+        '"' +
+        '  controls="controls" title="nodownload" controlsList="nodownload">\n' +
+        '<source src="' +
+        data.source +
+        '"' +
+        (data.sourcemime ? ' type="' + data.sourcemime + '"' : '') +
+        ' />\n' +
+        (data.altsource
+          ? '<source src="' +
+            data.altsource +
+            '"' +
+            (data.altsourcemime ? ' type="' + data.altsourcemime + '"' : '') +
+            ' />\n'
+          : '') +
+        '</video>'
+      )
+    },
     file_picker_types: 'media', //自定义文件选择器的回调内容 此方法只有在点击上方图片按钮才会触发
     file_picker_callback: function (callback, value, meta) {
       if (meta.filetype === 'file') {

+ 2 - 2
client/src/views/OaSystem/marketCenter/contractSubOut/applyIndex.vue

@@ -128,8 +128,8 @@
               scope.row.contractSubFlowStatus != 90 && isSignType[scope.row.isSign] === '是'
                 ? '未签'
                 : scope.row.contractAmount - (scope.row.payAmount ?? 0) === 0
-                  ? '已付清'
-                  : '未付清'
+                ? '已付清'
+                : '未付清'
             }}</template>
           </el-table-column>
           <el-table-column label="操作" fixed="right" align="center" width="200">

+ 2 - 2
client/src/views/OaSystem/marketCenter/khglPage/CustomerTable.vue

@@ -142,8 +142,8 @@ const newCustomer = (isAdd: boolean, row?) => {
   const params = !isAdd
     ? `/editCustomer?id=${row.id}&edit=true`
     : row
-      ? `/newCustomer?id=${row.id}`
-      : '/newCustomer'
+    ? `/newCustomer?id=${row.id}`
+    : '/newCustomer'
   push(params)
 }
 // 查看客户详情

+ 9 - 0
client/src/views/OaSystem/officeCenter/noticeAndLearn/add.vue

@@ -88,6 +88,15 @@ const rules = reactive<
 })
 function onSubmit(formEl: FormInstance | undefined, num?: number): void {
   if (!formEl) return
+  if (formData.value.content) {
+    /**
+     * 解决定义controlsList="nodownload"属性时tinymce组件会剔除
+     * **/
+    formData.value.content = formData.value.content.replace(
+      'title="nodownload"',
+      'controlsList="nodownload"'
+    )
+  }
   formEl.validate((valid, fields: any) => {
     if (valid) {
       let urlApi: string = '/adm/noticeAndLearn/add'

+ 19 - 7
client/src/views/OaSystem/officeCenter/noticeAndLearn/detail.vue

@@ -12,9 +12,7 @@
           <ul class="prviewFile">
             <li v-for="(item, index) in fileUrls" :key="index">
               <span>
-                <a href="javascript:void(0);" @click="previewFile(item['url'])">{{
-                  item['name']
-                }}</a>
+                <a href="javascript:void(0);" @click="previewFile(item)">{{ item['name'] }}</a>
               </span>
             </li>
           </ul>
@@ -44,15 +42,29 @@ const detailForm = ref<{
 })
 const preVisiable = ref<boolean>(false)
 const currentUrl = ref<string>()
-const previewFile = (url) => {
-  preVisiable.value = true
-  // currentUrl.value = 'http://localhost:3000/test.pdf'
-  currentUrl.value = url
+function isImage(file) {
+  return /^image\//i.test(file.type)
+}
+
+const previewFile = (item) => {
+  if (isImage(item)) {
+    preVisiable.value = true
+    currentUrl.value = item['url']
+  } else {
+    window.open(item['url'])
+  }
 }
 const closeHandler = () => {
   preVisiable.value = false
 }
 const { fileUrls, queryFiles } = useFiles(request)
+
+/***
+ * 禁用右键菜单
+ */
+document.addEventListener('contextmenu', function (e) {
+  e.preventDefault()
+})
 async function queryDetailById(idStr: any): Promise<void> {
   const urlApi = `/adm/noticeAndLearn/query/detailById`
   const params = {

+ 4 - 4
client/src/views/OaSystem/projectCenter/projectDetail/projectDetail.vue

@@ -297,10 +297,10 @@ const { mutate: startProjectStatusAndProcess } = useMutation(projectStatusAndPro
       sfysType.value === 'ys'
         ? '验收'
         : sfysType.value === 'jx'
-          ? '结项'
-          : sfysType.value === 'zz'
-            ? '中止'
-            : ''
+        ? '结项'
+        : sfysType.value === 'zz'
+        ? '中止'
+        : ''
     openFlow(router, data, `项目${subTitle}`)
   }
 })

二進制
zjugis-business/src/main/resources/static/imgs/down_disabled_icon.png


二進制
zjugis-business/src/main/resources/static/imgs/down_icon.png


二進制
zjugis-business/src/main/resources/static/imgs/up_disabled_icon.png


二進制
zjugis-business/src/main/resources/static/imgs/up_icon.png


+ 310 - 310
zjugis-business/src/main/resources/templates/FlowProject/apply.ftl

@@ -1,337 +1,337 @@
 <@w.workFlow javascripts=['/FlowProject/js/apply.js','/flow/js/formCommon.js', '/OwCommon/OwCommon.js']
-  styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css' ]>
+styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css' ]>
   <div class="z-position form-boss ow-tabs" name="flow-form">
-    <ul class="ow-tab-nav">
-      <li z-tabindex="0" class="ow-tab-item on" data-name="jbxx">基础信息</li>
+      <ul class="ow-tab-nav">
+          <li z-tabindex="0" class="ow-tab-item on" data-name="jbxx">基础信息</li>
     <#if WORKFLOW.OPINION! !="">
         <li z-tabindex="1" class="ow-tab-item" data-name="yj">审批意见</li>
-     </#if>
-    </ul>
-    <div class="ow-tab-scroll z-tab-content">
-      <div class="ow-tab-content on" name="jbxx">
-        <div class="z-form-row" style="display: none;">
-          <input type="text" value="${formEntity.instanceId!}" name="project$instanceId">
-          <input type="text" value="${formEntity.id!}" name="project$id">
-        </div>
-        <div class="form-title" style="margin-top: 0px;">
-          <div class="form-icon">
-            <img src="/imgs/titleIcon.png" alt="">
-            <span>基本信息</span>
-          </div>
-          <div class="form-btn">
-          </div>
-        </div>
-        <div class="jbxx-box jbxx-box-flex">
-          <table class="jbxx-table-info">
-            <tr>
-              <td class="th">
-                <div class="form-label">发起人:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="form-item">
-                    <div class="z-comp-input" name="project$applyWorkerName">
-                      <input type="text" value="${formEntity.applyWorkerName!}">
-                    </div>
-                  </div>
-                </div>
-              </td>
-              <td class="th">
-                <div class="form-label">所在部门:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="form-item">
-                    <div class="z-comp-input" name="project$applyWorkerDept">
-                      <input type="text" value="${formEntity.applyWorkerDept!}">
-                    </div>
-                  </div>
-                </div>
-              </td>
-            </tr>
-            <tr>
-              <td class="th">
-                <div class="form-label">项目名称:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="form-item">
-                    <div class="z-comp-input" name="project$xmmc">
-                      <input type="text" value="${formEntity.xmmc!}">
-                    </div>
-                  </div>
-                </div>
-              </td>
-              <td class="th">
-                <div class="form-label">项目经理:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-selecttree" name="xmjl">
-                    <input type="hidden" name="project$xmjlId" value="${formEntity.xmjlId!}">
-                    <input type="hidden" name="project$xmjl" value="${formEntity.xmjl!}">
-                    <div class="z-inputselect-bar">
-                      <span> ${formEntity.xmjl!} </span><i></i>
-                    </div>
+    </#if>
+      </ul>
+      <div class="ow-tab-scroll z-tab-content">
+          <div class="ow-tab-content on" name="jbxx">
+              <div class="z-form-row" style="display: none;">
+                  <input type="text" value="${formEntity.instanceId!}" name="project$instanceId">
+                  <input type="text" value="${formEntity.id!}" name="project$id">
+              </div>
+              <div class="form-title" style="margin-top: 0px;">
+                  <div class="form-icon">
+                      <img src="/imgs/titleIcon.png" alt="">
+                      <span>基本信息</span>
                   </div>
-                </div>
-              </td>
-            </tr>
-            <tr>
-              <td class="th">
-                <div class="form-label">责任部门:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-selecttree" name="zrbm">
-                    <input type="hidden" name="project$zrbmId" value="${formEntity.zrbmId!}">
-                    <input type="hidden" name="project$zrbm" value="${formEntity.zrbm!}">
-                    <div class="z-inputselect-bar">
-                      <span> ${formEntity.zrbm!} </span><i></i>
-                    </div>
+                  <div class="form-btn">
                   </div>
-                </div>
-              </td>
-              <td class="th">
-                <div class="form-label">项目编号:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="form-item btns-form-box">
-                    <div class="z-comp-input" name="project$xmbh">
-                      <input type="text" value="${formEntity.xmbh!}">
-                      <div id="generateSerial" style="width: 50px;" name="generateSerial">
-                        <div class="btn btn-sm btn-primary">生成</div>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-              </td>
-            </tr>
-            <tr>
-              <td class="th">
-                <div class="form-label">立项时间:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-date" name="project$lxsj">
-                    <input type="text" value="${formEntity.lxsj!}">
+              </div>
+              <div class="jbxx-box jbxx-box-flex">
+                  <table class="jbxx-table-info">
+                      <tr>
+                          <td class="th">
+                              <div class="form-label">发起人:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="form-item">
+                                      <div class="z-comp-input" name="project$applyWorkerName">
+                                          <input type="text" value="${formEntity.applyWorkerName!}">
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                          <td class="th">
+                              <div class="form-label">所在部门:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="form-item">
+                                      <div class="z-comp-input" name="project$applyWorkerDept">
+                                          <input type="text" value="${formEntity.applyWorkerDept!}">
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                      </tr>
+                      <tr>
+                          <td class="th">
+                              <div class="form-label">项目名称:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="form-item">
+                                      <div class="z-comp-input" name="project$xmmc">
+                                          <input type="text" value="${formEntity.xmmc!}">
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                          <td class="th">
+                              <div class="form-label">项目经理:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-selecttree" name="xmjl">
+                                      <input type="hidden" name="project$xmjlId" value="${formEntity.xmjlId!}">
+                                      <input type="hidden" name="project$xmjl" value="${formEntity.xmjl!}">
+                                      <div class="z-inputselect-bar">
+                                          <span> ${formEntity.xmjl!} </span><i></i>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                      </tr>
+                      <tr>
+                          <td class="th">
+                              <div class="form-label">责任部门:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-selecttree" name="zrbm">
+                                      <input type="hidden" name="project$zrbmId" value="${formEntity.zrbmId!}">
+                                      <input type="hidden" name="project$zrbm" value="${formEntity.zrbm!}">
+                                      <div class="z-inputselect-bar">
+                                          <span> ${formEntity.zrbm!} </span><i></i>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                          <td class="th">
+                              <div class="form-label">项目编号:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="form-item btns-form-box">
+                                      <div class="z-comp-input" name="project$xmbh">
+                                          <input type="text" value="${formEntity.xmbh!}">
+                                          <div id="generateSerial" style="width: 50px;" name="generateSerial">
+                                              <div class="btn btn-sm btn-primary">生成</div>
+                                          </div>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                      </tr>
+                      <tr>
+                          <td class="th">
+                              <div class="form-label">立项时间:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-date" name="project$lxsj">
+                                      <input type="text" value="${formEntity.lxsj!}">
+                                  </div>
+                              </div>
+                          </td>
+                          <td class="th">
+                              <div class="form-label">预估合同额(万元):</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-input" name="project$planContractAmount">
+                                      <input type="text" value="${formEntity.planContractAmount!}">
+                                  </div>
+                              </div>
+                          </td>
+                      </tr>
+                      <tr>
+                          <td class="th">
+                              <div class="form-label">行政区:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-selecttree" name="area">
+                                      <input type="hidden" name="project$xzqdm" value="${formEntity.xzqdm!}">
+                                      <input type="hidden" name="project$xzqmc" value="${formEntity.xzqmc!}">
+                                      <div class="z-inputselect-bar">
+                                          <span> ${formEntity.xzqmc!} </span><i></i>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                          <td class="th">
+                              <div class="form-label">项目类型:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-selecttree" name="projectType">
+                                      <input type="hidden" name="project$projectTypeId" value="${formEntity.projectTypeId!}">
+                                      <input type="hidden" name="project$projectTypeName" value="${formEntity.projectTypeName!}">
+                                      <div class="z-inputselect-bar">
+                                          <span> ${formEntity.projectTypeName!} </span><i></i>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                      </tr>
+                      <tr>
+                          <td class="th">
+                              <div class="form-label">行业:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="form-item">
+                                      <div class="form-item">
+                                          <div class="z-comp-select" name="project$hyId"
+                                               data='${hyTypeList!}' value="${formEntity.hyId!}">
+                                              <div class="z-inputselect-bar">
+                                                  <span> ${hyName!} </span><i></i>
+                                              </div>
+                                          </div>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                          <td class="th">
+                              <div class="form-label">预估工期(天):</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="form-item">
+                                      <div class="z-comp-input" name="project$yggq">
+                                          <input type="text" value="${formEntity.yggq!}">
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                      </tr>
+                      <tr>
+                          <td class="th">
+                              <div class="form-label">销售人员:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-selecttree" name="xsry">
+                                      <input type="hidden" name="project$xsryId" value="${formEntity.xsryId!}">
+                                      <input type="hidden" name="project$xsry" value="${formEntity.xsry!}">
+                                      <div class="z-inputselect-bar">
+                                          <span> ${formEntity.xsry!} </span><i></i>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                          <td class="th">
+                              <div class="form-label">归属公司:</div>
+                          </td>
+                          <td>
+                              <div class="form-group">
+                                  <div class="z-comp-selecttree" name="belongCompany">
+                                      <input type="hidden" name="project$belongCompanyid" value="${formEntity.belongCompanyid!}">
+                                      <input type="hidden" name="project$belongCompanyname" value="${formEntity.belongCompanyname!}">
+                                      <div class="z-inputselect-bar">
+                                          <span> ${formEntity.belongCompanyname!} </span><i></i>
+                                      </div>
+                                  </div>
+                              </div>
+                          </td>
+                      </tr>
+                  </table>
+              </div>
+              <div class="form-title">
+                  <div class="form-icon">
+                      <img src="/imgs/titleIcon.png" alt="">
+                      <span>产值信息</span>
                   </div>
-                </div>
-              </td>
-              <td class="th">
-                <div class="form-label">预估合同额(万元):</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-input" name="project$planContractAmount">
-                    <input type="text" value="${formEntity.planContractAmount!}">
+                  <div class="form-btn">
                   </div>
-                </div>
-              </td>
-            </tr>
-            <tr>
-              <td class="th">
-                <div class="form-label">行政区:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-selecttree" name="area">
-                    <input type="hidden" name="project$xzqdm" value="${formEntity.xzqdm!}">
-                    <input type="hidden" name="project$xzqmc" value="${formEntity.xzqmc!}">
-                    <div class="z-inputselect-bar">
-                      <span> ${formEntity.xzqmc!} </span><i></i>
-                    </div>
+              </div>
+              <div class="qjsjxx-box jbxx-box-flex">
+                  <div class="jbxx-box">
+                      <table class="jbxx-table-info">
+                          <tr>
+                              <td class="th">
+                                  <div class="form-label">是否需要签合同:</div>
+                              </td>
+                              <td>
+                                  <div class="form-group">
+                                      <div class="z-comp-radio" name="project$isSign">
+                                          <div class="z-radio-item <#if (formEntity.isSign!-1) == 1>checked</#if>" value="1"><i></i>是</div>
+                                          <div class="z-radio-item <#if (formEntity.isSign!-1) == 0>checked</#if>" value="0"><i></i>否</div>
+                                      </div>
+                                  </div>
+                              </td>
+                              <td class="th">
+                                  <div class="form-label">利益分成(公司/部门):</div>
+                              </td>
+                              <td class="lyfc">
+                                  <div class="form-group">
+                                      <div class="form-item">
+                                          <div class="z-comp-radio" name="project$shareRatio">
+                                              <div class="z-radio-item <#if (formEntity.shareRatio!0) == 0.42>checked</#if>" value="0.42"><i></i> 58% / 42%</div>
+                                              <div class="z-radio-item <#if (formEntity.shareRatio!0) == 0.375>checked</#if>" value="0.375"><i></i>62.5% / 37.5%</div>
+                                              <div class="z-radio-item flexInputTwo <#if (formEntity.shareRatio!0) != 0.375 && (formEntity.shareRatio!0) != 0.42 && (formEntity.shareRatio!0) != 0>checked</#if>" value="${formEntity.shareRatio!0}"><i></i>
+                                                  <input id="lyfcGs" type="text">%&nbsp;&nbsp;/&nbsp;&nbsp;  <input id="lyfcBm" type="text">%
+                                              </div>
+                                          </div>
+                                      </div>
+                                  </div>
+                              </td>
+                          </tr>
+                      </table>
                   </div>
-                </div>
-              </td>
-              <td class="th">
-                <div class="form-label">项目类型:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-selecttree" name="projectType">
-                    <input type="hidden" name="project$projectTypeId" value="${formEntity.projectTypeId!}">
-                    <input type="hidden" name="project$projectTypeName" value="${formEntity.projectTypeName!}">
-                    <div class="z-inputselect-bar">
-                      <span> ${formEntity.projectTypeName!} </span><i></i>
-                    </div>
+              </div>
+              <div class="form-title">
+                  <div class="form-icon">
+                      <img src="/imgs/titleIcon.png" alt="">
+                      <span>项目里程碑信息</span>
                   </div>
-                </div>
-              </td>
-            </tr>
-            <tr>
-              <td class="th">
-                <div class="form-label">行业:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="form-item">
-                    <div class="form-item">
-                      <div class="z-comp-select" name="project$hyId"
-                           data='${hyTypeList!}' value="${formEntity.hyId!}">
-                        <div class="z-inputselect-bar">
-                          <span> ${hyName!} </span><i></i>
-                        </div>
+                  <div class="form-btn">
+                      <div id="addData" name="addData">
+                          <img src="/imgs/addIcon.png" alt="">
+                          <span>新增</span>
                       </div>
-                    </div>
-                  </div>
-                </div>
-              </td>
-              <td class="th">
-                <div class="form-label">预估工期(天):</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="form-item">
-                    <div class="z-comp-input" name="project$yggq">
-                      <input type="text" value="${formEntity.yggq!}">
-                    </div>
-                  </div>
-                </div>
-              </td>
-            </tr>
-            <tr>
-              <td class="th">
-                <div class="form-label">销售人员:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-selecttree" name="xsry">
-                    <input type="hidden" name="project$xsryId" value="${formEntity.xsryId!}">
-                    <input type="hidden" name="project$xsry" value="${formEntity.xsry!}">
-                    <div class="z-inputselect-bar">
-                      <span> ${formEntity.xsry!} </span><i></i>
-                    </div>
-                  </div>
-                </div>
-              </td>
-              <td class="th">
-                <div class="form-label">归属公司:</div>
-              </td>
-              <td>
-                <div class="form-group">
-                  <div class="z-comp-selecttree" name="belongCompany">
-                    <input type="hidden" name="project$belongCompanyid" value="${formEntity.belongCompanyid!}">
-                    <input type="hidden" name="project$belongCompanyname" value="${formEntity.belongCompanyname!}">
-                    <div class="z-inputselect-bar">
-                      <span> ${formEntity.belongCompanyname!} </span><i></i>
-                    </div>
                   </div>
-                </div>
-              </td>
-            </tr>
-          </table>
-        </div>
-        <div class="form-title">
-          <div class="form-icon">
-            <img src="/imgs/titleIcon.png" alt="">
-            <span>产值信息</span>
+              </div>
+              <div class="qjsjxx-box">
+                  <table class="form-table-info">
+                      <thead>
+                      <tr>
+                          <td>序号</td>
+                          <td>里程碑信息</td>
+                          <td>计划完成时间</td>
+                          <td>项目进度</td>
+                          <td style="width: 170px;">操作</td>
+                      </tr>
+                      </thead>
+                      <tbody class="tbody tbodyQjsq" name="milestone"></tbody>
+                  </table>
+              </div>
           </div>
-          <div class="form-btn">
-          </div>
-        </div>
-        <div class="qjsjxx-box jbxx-box-flex">
-          <div class="jbxx-box">
-            <table class="jbxx-table-info">
-              <tr>
-                <td class="th">
-                  <div class="form-label">是否需要签合同:</div>
-                </td>
-                <td>
-                  <div class="form-group">
-                    <div class="z-comp-radio" name="project$isSign">
-                      <div class="z-radio-item <#if (formEntity.isSign!-1) == 1>checked</#if>" value="1"><i></i>是</div>
-                      <div class="z-radio-item <#if (formEntity.isSign!-1) == 0>checked</#if>" value="0"><i></i>否</div>
-                    </div>
-                  </div>
-                </td>
-                <td class="th">
-                  <div class="form-label">利益分成(公司/部门):</div>
-                </td>
-                <td class="lyfc">
-                  <div class="form-group">
-                    <div class="form-item">
-                      <div class="z-comp-radio" name="project$shareRatio">
-                        <div class="z-radio-item <#if (formEntity.shareRatio!0) == 0.42>checked</#if>" value="0.42"><i></i> 58% / 42%</div>
-                        <div class="z-radio-item <#if (formEntity.shareRatio!0) == 0.375>checked</#if>" value="0.375"><i></i>62.5% / 37.5%</div>
-                        <div class="z-radio-item flexInputTwo <#if (formEntity.shareRatio!0) != 0.375 && (formEntity.shareRatio!0) != 0.42 && (formEntity.shareRatio!0) != 0>checked</#if>" value="${formEntity.shareRatio!0}"><i></i>
-                          <input id="lyfcGs" type="text">%&nbsp;&nbsp;/&nbsp;&nbsp;  <input id="lyfcBm" type="text">%
-                        </div>
-                      </div>
-                    </div>
-                  </div>
-                </td>
-              </tr>
-            </table>
-          </div>
-        </div>
-        <div class="form-title">
-          <div class="form-icon">
-            <img src="/imgs/titleIcon.png" alt="">
-            <span>项目里程碑信息</span>
-          </div>
-          <div class="form-btn">
-            <div id="addData" name="addData">
-              <img src="/imgs/addIcon.png" alt="">
-              <span>新增</span>
-            </div>
-          </div>
-        </div>
-        <div class="qjsjxx-box">
-          <table class="form-table-info">
-            <thead>
-            <tr>
-              <td>序号</td>
-              <td>里程碑信息</td>
-              <td>计划完成时间</td>
-              <td>项目进度</td>
-              <td style="width: 170px;">操作</td>
-            </tr>
-            </thead>
-            <tbody class="tbody tbodyQjsq" name="milestone"></tbody>
-          </table>
-        </div>
-      </div>
       <#if WORKFLOW.OPINION! !="">
       <div class="ow-tab-content" name="yj">
 
           <div class="form-title">
-            <div class="form-icon">
-              <img src="/imgs/titleIcon.png" alt="">
-              <span>审批意见</span>
-            </div>
-            <div class="form-btn">
-            </div>
+              <div class="form-icon">
+                  <img src="/imgs/titleIcon.png" alt="">
+                  <span>审批意见</span>
+              </div>
+              <div class="form-btn">
+              </div>
           </div>
           <div class="qjsjxx-box">
-            <div class="z-form-wrap" name="opinionsDiv">
-              <div class="z-form-row"> ${WORKFLOW.OPINION!} </div>
-            </div>
+              <div class="z-form-wrap" name="opinionsDiv">
+                  <div class="z-form-row"> ${WORKFLOW.OPINION!} </div>
+              </div>
           </div>
       </div>
-        </#if>
-    </div>
+      </#if>
+      </div>
   </div>
   <style type="text/css">
-    .lyfc .z-comp-radio{
-      display: flex;
-      align-items: center;
-    }
-    .lyfc .flexInputTwo{
-      display: flex;
-      align-items: center;
-    }
-    .lyfc .flexInputTwo input{
-      border: 0;
-      width: 30px;
-      border-bottom: 1px solid #000;
-    }
-    .lyfc .flexInputTwo i{
-      margin-top: 0;
-    }
+      .lyfc .z-comp-radio{
+          display: flex;
+          align-items: center;
+      }
+      .lyfc .flexInputTwo{
+          display: flex;
+          align-items: center;
+      }
+      .lyfc .flexInputTwo input{
+          border: 0;
+          width: 30px;
+          border-bottom: 1px solid #000;
+      }
+      .lyfc .flexInputTwo i{
+          margin-top: 0;
+      }
   </style>
   <script>
-    window.milestoneList = '${milestoneListJson!}';
+      window.milestoneList = '${milestoneListJson!}';
   </script>
 </@w.workFlow>

+ 536 - 536
zjugis-business/src/main/resources/templates/FlowProject/js/apply.js

@@ -1,587 +1,587 @@
 (function () {
-  var lists = [];
-  var projectId = $("[name='project$id']").val()
-  let viewState = z.ui.comm.getUrlParam("_o");
-  let isFirst = z.ui.comm.getUrlParam("isFirst");
-  let flowInstanceId = "";
-  let isView = "";
-  window.onload = function () {
-    flowInstanceId = z.ui.comm.getUrlParam("flowInstanceId");
-    bindEvents();
-  };
-
-  function bindEvents() {
-    initData();
-    bindGenerateSerial();
-    z.workflow.saveBtn.addListener("onSaveClick", submit);
-  }
-
-  function initData() {
-    initLyfc();
-    initArea();
-    initXmjlAndXsry();
-    initZrbm();
-    initProjectType();
-    initBelongCompany();
-    initProjectMilestone();
-  }
-
-  function bindGenerateSerial(){
-      $("#generateSerial").on("click",function(){
-         var zrbmId = $("[name='project$zrbmId']").val();
-         if(!zrbmId){
-           z.ui.alertWarning("请选择责任部门!");
-           return;
-         }
-         var xmbh = $("[name='project$xmbh'] input").val();
-         var postdata = {"name": '立项项目编号',
-          "deptId": zrbmId}
-         if(xmbh) {
-           z.ui.confirm("confirm").init({
-             content: '已有编号[' +xmbh + '],重新生成会覆盖原有编号,是否继续?',
-             onConfirm: function() {
-               z.ui.ajax({
-                 type: "post",
-                 contentType: "application/json",
-                 url: "/common/generate-serial-number",
-                 data: JSON.stringify(postdata),
-                 success: function (res) {
-                   if(res && res.code === 0){
-                     $("[name='project$xmbh'] input").val(res.data)
-                   } else {
-                     z.ui.alertWarning(res.msg);
-                   }
-                 },
-                 error: function () {
-                 }
-               })
-             },
-             onCancel: function () {
-               genFlag = false;
-             }
-           })
-         } else {
-           z.ui.ajax({
-             type: "post",
-             contentType: "application/json",
-             url: "/common/generate-serial-number",
-             data: JSON.stringify(postdata),
-             success: function (res) {
-               if(res && res.code === 0){
-                 $("[name='project$xmbh'] input").val(res.data)
-               } else {
-                 z.ui.alertWarning(res.msg);
-               }
-             },
-             error: function () {
-             }
-           })
-         }
-      })
-  }
-
-
-  function submit(all, istransfer) {
-    var postData = z.ui.form.getFormFields("[name=flow-form]", { validatorRequired: istransfer });
-    if (postData === false) {
-      all({ success: false });
-      return;
+    var lists = [];
+    var projectId = $("[name='project$id']").val()
+    let viewState = z.ui.comm.getUrlParam("_o");
+    let isFirst = z.ui.comm.getUrlParam("isFirst");
+    let flowInstanceId = "";
+    let isView = "";
+    window.onload = function () {
+        flowInstanceId = z.ui.comm.getUrlParam("flowInstanceId");
+        bindEvents();
+    };
+
+    function bindEvents() {
+        initData();
+        bindGenerateSerial();
+        z.workflow.saveBtn.addListener("onSaveClick", submit);
     }
-    var milestoneFlag = false;
-    var milestoneList = new Array()
-    for (let key of Object.keys(postData)) {
-      let mealName = postData[key];
-      if (key.startsWith("ProjectMilestone")) {
-        mealName.projectId = projectId;
-        mealName.state = 0;
-        milestoneList.push(z.ui.form.childStringify(mealName));
-        milestoneFlag  =true;
-      }
+
+    function initData() {
+        initLyfc();
+        initArea();
+        initXmjlAndXsry();
+        initZrbm();
+        initProjectType();
+        initBelongCompany();
+        initProjectMilestone();
     }
-    if(istransfer && !milestoneFlag){
-      all({success: false, errorMsg: "请填写项目里程碑!"});
-      return;
+
+    function bindGenerateSerial(){
+        $("#generateSerial").on("click",function(){
+            var zrbmId = $("[name='project$zrbmId']").val();
+            if(!zrbmId){
+                z.ui.alertWarning("请选择责任部门!");
+                return;
+            }
+            var xmbh = $("[name='project$xmbh'] input").val();
+            var postdata = {"name": '立项项目编号',
+                "deptId": zrbmId}
+            if(xmbh) {
+                z.ui.confirm("confirm").init({
+                    content: '已有编号[' +xmbh + '],重新生成会覆盖原有编号,是否继续?',
+                    onConfirm: function() {
+                        z.ui.ajax({
+                            type: "post",
+                            contentType: "application/json",
+                            url: "/common/generate-serial-number",
+                            data: JSON.stringify(postdata),
+                            success: function (res) {
+                                if(res && res.code === 0){
+                                    $("[name='project$xmbh'] input").val(res.data)
+                                } else {
+                                    z.ui.alertWarning(res.msg);
+                                }
+                            },
+                            error: function () {
+                            }
+                        })
+                    },
+                    onCancel: function () {
+                        genFlag = false;
+                    }
+                })
+            } else {
+                z.ui.ajax({
+                    type: "post",
+                    contentType: "application/json",
+                    url: "/common/generate-serial-number",
+                    data: JSON.stringify(postdata),
+                    success: function (res) {
+                        if(res && res.code === 0){
+                            $("[name='project$xmbh'] input").val(res.data)
+                        } else {
+                            z.ui.alertWarning(res.msg);
+                        }
+                    },
+                    error: function () {
+                    }
+                })
+            }
+        })
     }
-    postData.milestoneList = milestoneList;
-    z.ui.ajax({
-      url: z.ui.comm.getEntranceUrl("/flow/project/update"),
-      data: z.ui.form.childStringify(postData),
-      success: function () {
-        all({ success: true });
-      },
-      error: function () {
-        all({ success: false });
-      }
-    })
-  }
-
-  function initProjectMilestone(){
-    var milestoneList = JSON.parse(window.milestoneList);
-    if (milestoneList.length > 0) {
-      for (let i = 0; i < milestoneList.length; i++) {
-        let obj = {
-          name: milestoneList[i].name || "",
-          planFinishTime: milestoneList[i].planFinishTime || "",
-          process: milestoneList[i].process || "",
-          id: milestoneList[i].id || "",
-          projectId: milestoneList[i].projectId || projectId,
-          sortnum: milestoneList[i].sortnum || ""
+
+
+    function submit(all, istransfer) {
+        var postData = z.ui.form.getFormFields("[name=flow-form]", { validatorRequired: istransfer });
+        if (postData === false) {
+            all({ success: false });
+            return;
+        }
+        var milestoneFlag = false;
+        var milestoneList = new Array()
+        for (let key of Object.keys(postData)) {
+            let mealName = postData[key];
+            if (key.startsWith("ProjectMilestone")) {
+                mealName.projectId = projectId;
+                mealName.state = 0;
+                milestoneList.push(z.ui.form.childStringify(mealName));
+                milestoneFlag  =true;
+            }
         }
-        lists.push(obj)
-      }
+        if(istransfer && !milestoneFlag){
+            all({success: false, errorMsg: "请填写项目里程碑!"});
+            return;
+        }
+        postData.milestoneList = milestoneList;
+        z.ui.ajax({
+            url: z.ui.comm.getEntranceUrl("/flow/project/update"),
+            data: z.ui.form.childStringify(postData),
+            success: function () {
+                all({ success: true });
+            },
+            error: function () {
+                all({ success: false });
+            }
+        })
     }
-    $("#addData").click(function(){
-      addProjectMilestone();
-    })
-    updateView()
-  }
-
-  function initLyfc(){
-    //利益分成JS交互
-    var lyfcGsDom = document.querySelector("#lyfcGs");
-    var lyfcBmDom = document.querySelector("#lyfcBm");
-    var checkDom = document.querySelector(".flexInputTwo");
-    var initVal = 100;
-    lyfcGsDom.addEventListener('input', function(evt){
-      var tar = evt.target;
-      var val = tar.value;
-      if(val !== ''){
-        lyfcBmDom.value = initVal - parseInt(val);
-        checkDom.setAttribute('value',(initVal - parseInt(val))/100);
-      } else {
-        lyfcBmDom.value = '';
-      }
-    })
-    lyfcBmDom.addEventListener('input', function(evt){
-      var tar = evt.target;
-      var val = tar.value;
-      if(val !== '') {
-        lyfcGsDom.value = initVal - parseInt(val);
-        checkDom.setAttribute('value',parseInt(val) / 100);
-      } else {
-        lyfcGsDom.value = '';
-      }
-    })
-    //动态设置
-    var defaultVal = document.querySelector(".flexInputTwo").getAttribute('value');
-    var ratioGroupDom = document.querySelector("[name='project$shareRatio']");
-    var ratioDoms = ratioGroupDom.querySelectorAll("div");
-    for(var i = 0; i < ratioDoms.length;i++){
-      var ele = ratioDoms[i]
-      if(!ele) continue;
-      var val = ele.getAttribute('value');
-      var eleClass = ele.classList;
-      if(val !== '0.42' && val !== '0.375' && val !== '0'){
-        lyfcBmDom.value = defaultVal * 100;
-        lyfcGsDom.value = 100 - defaultVal * 100;
-        break;
-      }
+
+    function initProjectMilestone(){
+        var milestoneList = JSON.parse(window.milestoneList);
+        if (milestoneList.length > 0) {
+            for (let i = 0; i < milestoneList.length; i++) {
+                let obj = {
+                    name: milestoneList[i].name || "",
+                    planFinishTime: milestoneList[i].planFinishTime || "",
+                    process: milestoneList[i].process || "",
+                    id: milestoneList[i].id || "",
+                    projectId: milestoneList[i].projectId || projectId,
+                    sortnum: milestoneList[i].sortnum || ""
+                }
+                lists.push(obj)
+            }
+        }
+        $("#addData").click(function(){
+            addProjectMilestone();
+        })
+        updateView()
     }
-  }
-
-  function initArea() {
-    z.ui.ajax({
-      type: "get",
-      url: "/common/area-tree",
-      data: {},
-      success: function (res) {
-        if (res && res.code === 0 && res.data.length > 0) {
-          selecttree("[name='area']", res.data, clickArea,null,null,setArea)
+
+    function initLyfc(){
+        //利益分成JS交互
+        var lyfcGsDom = document.querySelector("#lyfcGs");
+        var lyfcBmDom = document.querySelector("#lyfcBm");
+        var checkDom = document.querySelector(".flexInputTwo");
+        var initVal = 100;
+        lyfcGsDom.addEventListener('input', function(evt){
+            var tar = evt.target;
+            var val = tar.value;
+            if(val !== ''){
+                lyfcBmDom.value = initVal - parseInt(val);
+                checkDom.setAttribute('value',(initVal - parseInt(val))/100);
+            } else {
+                lyfcBmDom.value = '';
+            }
+        })
+        lyfcBmDom.addEventListener('input', function(evt){
+            var tar = evt.target;
+            var val = tar.value;
+            if(val !== '') {
+                lyfcGsDom.value = initVal - parseInt(val);
+                checkDom.setAttribute('value',parseInt(val) / 100);
+            } else {
+                lyfcGsDom.value = '';
+            }
+        })
+        //动态设置
+        var defaultVal = document.querySelector(".flexInputTwo").getAttribute('value');
+        var ratioGroupDom = document.querySelector("[name='project$shareRatio']");
+        var ratioDoms = ratioGroupDom.querySelectorAll("div");
+        for(var i = 0; i < ratioDoms.length;i++){
+            var ele = ratioDoms[i]
+            if(!ele) continue;
+            var val = ele.getAttribute('value');
+            var eleClass = ele.classList;
+            if(val !== '0.42' && val !== '0.375' && val !== '0'){
+                lyfcBmDom.value = defaultVal * 100;
+                lyfcGsDom.value = 100 - defaultVal * 100;
+                break;
+            }
         }
-      },
-      error: function () {
-      }
-    })
-  }
-
-  function setArea(){
-    var id = $("[name='project$xzqdm']").val();
-    if(id){
-      z.ui.selecttree("[name='area']").setValue(id);
     }
-  }
-
-  function initXmjlAndXsry() {
-    z.ui.ajax({
-      type: "get",
-      url: "/common/user-tree",
-      data: {},
-      success: function (res) {
-        if (res && res.length > 0) {
-          selecttree("[name='xmjl']", res, clickXmjl, allowChildClick,null,setXmjl)
-          selecttree("[name='xsry']", res, clickXsry, allowChildClick,null,setXsry);
+
+    function initArea() {
+        z.ui.ajax({
+            type: "get",
+            url: "/common/area-tree",
+            data: {},
+            success: function (res) {
+                if (res && res.code === 0 && res.data.length > 0) {
+                    selecttree("[name='area']", res.data, clickArea,null,null,setArea)
+                }
+            },
+            error: function () {
+            }
+        })
+    }
+
+    function setArea(){
+        var id = $("[name='project$xzqdm']").val();
+        if(id){
+            z.ui.selecttree("[name='area']").setValue(id);
         }
-      },
-      error: function () {
-      }
-    })
-  }
-
-  function setXmjl(){
-    var id = $("[name='project$xmjlId']").val();
-    if(id){
-      z.ui.selecttree("[name='xmjl']").setValue(id);
     }
-  }
 
-  function setXsry(){
-    var id = $("[name='project$xsryId']").val();
-    if(id){
-      z.ui.selecttree("[name='xsry']").setValue(id);
+    function initXmjlAndXsry() {
+        z.ui.ajax({
+            type: "get",
+            url: "/common/user-tree",
+            data: {},
+            success: function (res) {
+                if (res && res.length > 0) {
+                    selecttree("[name='xmjl']", res, clickXmjl, allowChildClick,null,setXmjl)
+                    selecttree("[name='xsry']", res, clickXsry, allowChildClick,null,setXsry);
+                }
+            },
+            error: function () {
+            }
+        })
+    }
+
+    function setXmjl(){
+        var id = $("[name='project$xmjlId']").val();
+        if(id){
+            z.ui.selecttree("[name='xmjl']").setValue(id);
+        }
     }
-  }
-
-  function initBelongCompany() {
-    z.ui.ajax({
-      type: "get",
-      url: "/common/company-tree",
-      data: {},
-      success: function (res) {
-        if (res && res.data.length > 0) {
-          selecttree("[name='belongCompany']", res.data, clickBelongCompany,null,null,setBelongCompany)
+
+    function setXsry(){
+        var id = $("[name='project$xsryId']").val();
+        if(id){
+            z.ui.selecttree("[name='xsry']").setValue(id);
         }
-      },
-      error: function () {
-      }
-    })
-  }
-
-  function setBelongCompany(){
-    var id = $("[name='project$belongCompanyid']").val();
-    if(id){
-      z.ui.selecttree("[name='belongCompany']").setValue(id);
     }
-  }
-
-  function addProjectMilestone(){
-    var trFragment = document.createDocumentFragment();
-    let tbody = document.querySelectorAll('.tbody tr')
-    let qjsjElements = document.getElementsByName("project_milestone_seq");
-    var dataObj = {
-      name: "",
-      process: "100%",
-      planFinishTime: "",
-      id: "",
-      projectId: projectId,
-      sortnum: lists.length - 1
+
+    function initBelongCompany() {
+        z.ui.ajax({
+            type: "get",
+            url: "/common/company-tree",
+            data: {},
+            success: function (res) {
+                if (res && res.data.length > 0) {
+                    selecttree("[name='belongCompany']", res.data, clickBelongCompany,null,null,setBelongCompany)
+                }
+            },
+            error: function () {
+            }
+        })
     }
-    lists.push(dataObj);
-    trFragment.appendChild(generateTableTrHtml(lists.length-1))
-    var index = lists.length - 1;
-    $(".tbody").append(trFragment)
-    $("#delBtn_" + index).click(function () {
-      var i = this.id.substring(this.id.indexOf("_") + 1)
-      z.ui.confirm("compid").init({
-        content: "确定删除吗?",
-        onConfirm: function () {
-          var element = document.getElementById("project_milestone_" +  i);
-          element.remove();
-          buildSeq();
-          updateList();
-          updateView();
-        },
-        onCancel: function () {
 
+    function setBelongCompany(){
+        var id = $("[name='project$belongCompanyid']").val();
+        if(id){
+            z.ui.selecttree("[name='belongCompany']").setValue(id);
         }
-      })
-    })
-    $("#editBtn_" + index).click(function () {
-      var i = this.id.substring(this.id.indexOf("_") + 1)
-      const span = $(this).find("span");
-      const html = span.html();
-      if (html === '编辑') {
-        span.html('保存')
-        detailWrite(i);
-        $("#addData").attr('disabled', "true");
-        $("#project_milestone_" + i).removeClass("form-table-disable")
-        return;
-      }
-      if (html === '保存') {
-        span.html('编辑')
-        detailReadonly(i, false,"project_milestone_")
-        $("#addData").removeAttr('disabled')
-        $("#project_milestone_" + i).addClass("form-table-disable")
-        return;
-      }
-    })
-    z.ui.date("[name='ProjectMilestone[" + (lists.length-1) + "]$planFinishTime']").init()
-    buildSeq();
-  }
-
-  function buildSeq() {
-    let elementsByName = document.getElementsByName("project_milestone_seq");
-    for (let i = 0; i < elementsByName.length; i++) {
-      const seqElement = elementsByName[i];
-      seqElement.innerHTML = i + 1;
     }
-  }
-  function updateList(){
-    lists = [];
-    var postData = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: false});
-    var milestoneList = new Array()
-    for (let key of Object.keys(postData)) {
-      let mealName = postData[key];
-      if (key.startsWith("ProjectMilestone")) {
+
+    function addProjectMilestone(){
+        var trFragment = document.createDocumentFragment();
+        let tbody = document.querySelectorAll('.tbody tr')
+        let qjsjElements = document.getElementsByName("project_milestone_seq");
         var dataObj = {
-          name: mealName.name,
-          process: "100%",
-          planFinishTime: mealName.planFinishTime,
-          id: mealName.id,
-          projectId: projectId,
-          sortnum: lists.length
+            name: "",
+            process: "100%",
+            planFinishTime: "",
+            id: "",
+            projectId: projectId,
+            sortnum: lists.length - 1
         }
         lists.push(dataObj);
-      }
+        trFragment.appendChild(generateTableTrHtml(lists.length-1))
+        var index = lists.length - 1;
+        $(".tbody").append(trFragment)
+        $("#delBtn_" + index).click(function () {
+            var i = this.id.substring(this.id.indexOf("_") + 1)
+            z.ui.confirm("compid").init({
+                content: "确定删除吗?",
+                onConfirm: function () {
+                    var element = document.getElementById("project_milestone_" +  i);
+                    element.remove();
+                    buildSeq();
+                    updateList();
+                    updateView();
+                },
+                onCancel: function () {
+
+                }
+            })
+        })
+        $("#editBtn_" + index).click(function () {
+            var i = this.id.substring(this.id.indexOf("_") + 1)
+            const span = $(this).find("span");
+            const html = span.html();
+            if (html === '编辑') {
+                span.html('保存')
+                detailWrite(i);
+                $("#addData").attr('disabled', "true");
+                $("#project_milestone_" + i).removeClass("form-table-disable")
+                return;
+            }
+            if (html === '保存') {
+                span.html('编辑')
+                detailReadonly(i, false,"project_milestone_")
+                $("#addData").removeAttr('disabled')
+                $("#project_milestone_" + i).addClass("form-table-disable")
+                return;
+            }
+        })
+        z.ui.date("[name='ProjectMilestone[" + (lists.length-1) + "]$planFinishTime']").init()
+        buildSeq();
+    }
+
+    function buildSeq() {
+        let elementsByName = document.getElementsByName("project_milestone_seq");
+        for (let i = 0; i < elementsByName.length; i++) {
+            const seqElement = elementsByName[i];
+            seqElement.innerHTML = i + 1;
+        }
+    }
+    function updateList(){
+        lists = [];
+        var postData = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: false});
+        var milestoneList = new Array()
+        for (let key of Object.keys(postData)) {
+            let mealName = postData[key];
+            if (key.startsWith("ProjectMilestone")) {
+                var dataObj = {
+                    name: mealName.name,
+                    process: "100%",
+                    planFinishTime: mealName.planFinishTime,
+                    id: mealName.id,
+                    projectId: projectId,
+                    sortnum: lists.length
+                }
+                lists.push(dataObj);
+            }
+        }
     }
-  }
-
-  function updateView() {
-    let tbodyQjsq = document.querySelector('.tbodyQjsq')
-    let html = ''
-    for (let i = 0; i < lists.length; i++) {
-      html += '<tr class="qjsjClass" id="project_milestone_' + i + '" style="background:#fff">'
-          + '<td name="project_milestone_seq">' + (i + 1) + '</td>'
-          + '<td>'
-          + '<div class="form-flex">'
-          + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
-          + '<input type="hidden" name="ProjectMilestone[' + i + ']$id" value="'+lists[i].id+'"/>'
-          + '<input type="hidden" name="ProjectMilestone[' + i + ']$sortnum" value="'+lists[i].sortnum+'"/>'
-          + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$name">'
-          + '<input type="text" value="'+lists[i].name+'">'
-          + '</div>'
-          + '</div>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div class="form-flex">'
-          + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
-          + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$planFinishTime">'
-          + '<input type="text" value="'+lists[i].planFinishTime+'">'
-          + '</div>'
-          + '</div>'
-          + '</div>'
-          + '</td>'
-          + '<td>'
-          + '<div class="form-flex">'
-          + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
-          + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$process">'
-          + '<input type="text" value="'+lists[i].process+'">'
-          + '</div>'
-          + '</div>'
-          + '</div>'
-          + '</td>'
-          + '<td>';
-          if(isFirst !== '0' && viewState !== 'v') {
-            html += "<div style='display: flex;white-space: nowrap'>"
-            + '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
-            + '<span>编辑</span>'
+
+    function updateView() {
+        let tbodyQjsq = document.querySelector('.tbodyQjsq')
+        let html = ''
+        for (let i = 0; i < lists.length; i++) {
+            html += '<tr class="qjsjClass" id="project_milestone_' + i + '" style="background:#fff">'
+                + '<td name="project_milestone_seq">' + (i + 1) + '</td>'
+                + '<td>'
+                + '<div class="form-flex">'
+                + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+                + '<input type="hidden" name="ProjectMilestone[' + i + ']$id" value="'+lists[i].id+'"/>'
+                + '<input type="hidden" name="ProjectMilestone[' + i + ']$sortnum" value="'+lists[i].sortnum+'"/>'
+                + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$name">'
+                + '<input type="text" value="'+lists[i].name+'">'
+                + '</div>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'
+                + '<div class="form-flex">'
+                + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+                + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$planFinishTime">'
+                + '<input type="text" value="'+lists[i].planFinishTime+'">'
+                + '</div>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>'
+                + '<div class="form-flex">'
+                + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+                + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$process">'
+                + '<input type="text" value="'+lists[i].process+'">'
+                + '</div>'
+                + '</div>'
+                + '</div>'
+                + '</td>'
+                + '<td>';
+            if(isFirst !== '0' && viewState !== 'v') {
+                html += "<div style='display: flex;white-space: nowrap'>"
+                    + '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
+                    + '<span>编辑</span>'
+                    + '</div>'
+                    + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
+                    + '<span>删除</span>'
+                    + '</div></div>'
+            }
+            html += '</td></tr>';
+        }
+        tbodyQjsq.innerHTML = html
+        for (let i = 0; i < lists.length; i++) {
+            z.ui.date("[name='ProjectMilestone[" + i + "]$planFinishTime']").init()
+            if(isFirst !== '0' && viewState !== 'v') {
+                $("#delBtn_" + i).click(function () {
+                    z.ui.confirm("compid").init({
+                        content: "确定删除吗?",
+                        onConfirm: function () {
+                            var element = document.getElementById("project_milestone_" + i);
+                            element.remove();
+                            buildSeq();
+                            updateList();
+                            updateView();
+                        },
+                        onCancel: function () {
+
+                        }
+                    })
+
+                })
+                $("#editBtn_" + i).click(function () {
+                    const span = $(this).find("span");
+                    const html = span.html();
+                    if (html === '编辑') {
+                        span.html('保存')
+                        detailWrite(i);
+                        $("#addData").attr('disabled', "true");
+                        $("#project_milestone_" + i).removeClass("form-table-disable")
+                        return;
+                    }
+                    if (html === '保存') {
+                        span.html('编辑')
+                        detailReadonly(i, false, "project_milestone_")
+                        $("#addData").removeAttr('disabled')
+                        $("#project_milestone_" + i).addClass("form-table-disable")
+                        return;
+                    }
+                })
+            }
+            detailReadonly(i,false,"project_milestone_")
+            $("#project_milestone_" + i).addClass("form-table-disable")
+            // if(viewState === 'v' || read=== '1'){
+            //     detailReadonly(i)
+            // }
+        }
+        // detailTotalInit()
+    }
+
+
+
+    function generateTableTrHtml(index) {
+        var trDom = document.createElement("tr");
+        trDom.style.backgroundColor = "#fff";
+        trDom.id = "project_milestone_" + index;
+        trDom.className = 'qjsjClass';
+        trDom.innerHTML = '<td name="project_milestone_seq">' + (index + 1) + '</td>'
+            + '<td>'
+            + '<div class="form-flex">'
+            + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+            + '<input type="hidden" name="ProjectMilestone[' + index + ']$sortnum" value="'+(index+1)+'" />'
+            + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$name">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div class="form-flex">'
+            + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+            + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$planFinishTime">'
+            + '<input type="text" value="">'
+            + '</div>'
+            + '</div>'
             + '</div>'
-            + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
+            + '</td>'
+            + '<td>'
+            + '<div class="form-flex">'
+            + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+            + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$process">'
+            + '<input type="text" value="100%">'
+            + '</div>'
+            + '</div>'
+            + '</div>'
+            + '</td>'
+            + '<td>'
+            + '<div style="display: flex;white-space: nowrap">'
+            + '<div id="editBtn_' + (index) + '" class="table-btn editBtn_' + (index) + '" data-index="' + (index) + '">'
+            + '<span>保存</span>'
+            + '</div>'
+            + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
             + '<span>删除</span>'
             + '</div></div>'
-          }
-          html += '</td></tr>';
+            + '</td>';
+        return trDom;
     }
-    tbodyQjsq.innerHTML = html
-    for (let i = 0; i < lists.length; i++) {
-      z.ui.date("[name='ProjectMilestone[" + i + "]$planFinishTime']").init()
-      if(isFirst !== '0' && viewState !== 'v') {
-        $("#delBtn_" + i).click(function () {
-          z.ui.confirm("compid").init({
-            content: "确定删除吗?",
-            onConfirm: function () {
-              var element = document.getElementById("project_milestone_" + i);
-              element.remove();
-              buildSeq();
-              updateList();
-              updateView();
-            },
-            onCancel: function () {
 
+    function initZrbm() {
+        z.ui.ajax({
+            type: "get",
+            url: "/common/dept-tree",
+            data: {},
+            success: function (res) {
+                if (res && res.length > 0) {
+                    selecttree("[name='zrbm']", res, clickZrbm,null,null,setZrbm)
+                }
+            },
+            error: function () {
             }
-          })
-
-        })
-        $("#editBtn_" + i).click(function () {
-          const span = $(this).find("span");
-          const html = span.html();
-          if (html === '编辑') {
-            span.html('保存')
-            detailWrite(i);
-            $("#addData").attr('disabled', "true");
-            $("#project_milestone_" + i).removeClass("form-table-disable")
-            return;
-          }
-          if (html === '保存') {
-            span.html('编辑')
-            detailReadonly(i, false, "project_milestone_")
-            $("#addData").removeAttr('disabled')
-            $("#project_milestone_" + i).addClass("form-table-disable")
-            return;
-          }
         })
-      }
-      detailReadonly(i,false,"project_milestone_")
-      $("#project_milestone_" + i).addClass("form-table-disable")
-      // if(viewState === 'v' || read=== '1'){
-      //     detailReadonly(i)
-      // }
     }
-    // detailTotalInit()
-  }
-
-
-
-  function generateTableTrHtml(index) {
-    var trDom = document.createElement("tr");
-    trDom.style.backgroundColor = "#fff";
-    trDom.id = "project_milestone_" + index;
-    trDom.className = 'qjsjClass';
-    trDom.innerHTML = '<td name="project_milestone_seq">' + (index + 1) + '</td>'
-        + '<td>'
-        + '<div class="form-flex">'
-        + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
-        + '<input type="hidden" name="ProjectMilestone[' + index + ']$sortnum" value="'+(index+1)+'" />'
-        + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$name">'
-        + '<input type="text" value="">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '</td>'
-        + '<td>'
-        + '<div class="form-flex">'
-        + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
-        + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$planFinishTime">'
-        + '<input type="text" value="">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '</td>'
-        + '<td>'
-        + '<div class="form-flex">'
-        + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
-        + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$process">'
-        + '<input type="text" value="100%">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '</td>'
-        + '<td>'
-        + '<div style="display: flex;white-space: nowrap">'
-        + '<div id="editBtn_' + (index) + '" class="table-btn editBtn_' + (index) + '" data-index="' + (index) + '">'
-        + '<span>保存</span>'
-        + '</div>'
-        + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
-        + '<span>删除</span>'
-        + '</div></div>'
-        + '</td>';
-    return trDom;
-  }
-
-  function initZrbm() {
-    z.ui.ajax({
-      type: "get",
-      url: "/common/dept-tree",
-      data: {},
-      success: function (res) {
-        if (res && res.length > 0) {
-          selecttree("[name='zrbm']", res, clickZrbm,null,null,setZrbm)
+
+    function setZrbm(){
+        var id = $("[name='project$zrbmId']").val();
+        if(id){
+            z.ui.selecttree("[name='zrbm']").setValue(id);
+        }
+    }
+
+
+    function detailReadonly(i, isBool = true,prefix) {
+        if (isBool) {
+            $("#delBtn_" + i).css("display", "none");
+            $("#editBtn_" + i).css("display", "none");
+        }
+        let detailElement = document.getElementById(prefix + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = true;
+            detailInput[j].className += "z-readonly"
         }
-      },
-      error: function () {
-      }
-    })
-  }
-
-  function setZrbm(){
-    var id = $("[name='project$zrbmId']").val();
-    if(id){
-      z.ui.selecttree("[name='zrbm']").setValue(id);
     }
-  }
 
 
-  function detailReadonly(i, isBool = true,prefix) {
-    if (isBool) {
-      $("#delBtn_" + i).css("display", "none");
-      $("#editBtn_" + i).css("display", "none");
+    function detailWrite(i) {
+        //财务审核时可以核减修改金额
+        let detailElement = document.getElementById("project_milestone_" + i);
+        let detailInput = detailElement.getElementsByTagName("input");
+        for (let j = 0; j < detailInput.length; j++) {
+            detailInput[j].disabled = false;
+            $(detailInput[j]).removeClass("z-readonly")
+        }
     }
-    let detailElement = document.getElementById(prefix + i);
-    let detailInput = detailElement.getElementsByTagName("input");
-    for (let j = 0; j < detailInput.length; j++) {
-      detailInput[j].disabled = true;
-      detailInput[j].className += "z-readonly"
+
+    function initProjectType() {
+        z.ui.ajax({
+            type: "get",
+            url: "/common/project-type-tree",
+            data: {},
+            success: function (res) {
+                if (res && res.code === 0 && res.data.length > 0) {
+                    selecttree("[name='projectType']", res.data, clickProjectType,null,null,setProjectType);
+                }
+            },
+            error: function () {
+            }
+        })
     }
-  }
 
+    function setProjectType(){
+        var id = $("[name='project$projectTypeId']").val();
+        if(id){
+            z.ui.selecttree("[name='projectType']").setValue(id);
+        }
+    }
 
-  function detailWrite(i) {
-    //财务审核时可以核减修改金额
-    let detailElement = document.getElementById("project_milestone_" + i);
-    let detailInput = detailElement.getElementsByTagName("input");
-    for (let j = 0; j < detailInput.length; j++) {
-      detailInput[j].disabled = false;
-      $(detailInput[j]).removeClass("z-readonly")
+    function clickXmjl(even, treeId, treeNode) {
+        if (treeNode.type === 3) {
+            $("[name='project$xmjl']").val(treeNode.name);
+            $("[name='project$xmjlId']").val(treeNode.id);
+        }
     }
-  }
-
-  function initProjectType() {
-    z.ui.ajax({
-      type: "get",
-      url: "/common/project-type-tree",
-      data: {},
-      success: function (res) {
-        if (res && res.code === 0 && res.data.length > 0) {
-          selecttree("[name='projectType']", res.data, clickProjectType,null,null,setProjectType);
+
+
+    function clickXsry(even, treeId, treeNode) {
+        if (treeNode.type === 3) {
+
+            $("[name='project$xsry']").val(treeNode.name);
+            $("[name='project$xsryId']").val(treeNode.id);
         }
-      },
-      error: function () {
-      }
-    })
-  }
-
-  function setProjectType(){
-    var id = $("[name='project$projectTypeId']").val();
-    if(id){
-      z.ui.selecttree("[name='projectType']").setValue(id);
     }
-  }
 
-  function clickXmjl(even, treeId, treeNode) {
-    if (treeNode.type === 3) {
-      $("[name='project$xmjl']").val(treeNode.name);
-      $("[name='project$xmjlId']").val(treeNode.id);
+    function clickProjectType(even, treeId, treeNode) {
+        $("[name='project$projectTypeName']").val(treeNode.name);
+        $("[name='project$projectTypeId']").val(treeNode.id);
     }
-  }
 
+    function clickArea(even, treeId, treeNode) {
+        $("[name='project$xzqmc']").val(treeNode.name);
+        $("[name='project$xzqdm']").val(treeNode.id);
+    }
 
-  function clickXsry(even, treeId, treeNode) {
-    if (treeNode.type === 3) {
+    function clickZrbm(even, treeId, treeNode) {
+        $("[name='project$zrbm']").val(treeNode.name);
+        $("[name='project$zrbmId']").val(treeNode.id);
+    }
 
-      $("[name='project$xsry']").val(treeNode.name);
-      $("[name='project$xsryId']").val(treeNode.id);
+    function clickBelongCompany(even, treeId, treeNode) {
+        $("[name='project$belongCompanyname']").val(treeNode.name);
+        $("[name='project$belongCompanyid']").val(treeNode.id);
     }
-  }
-
-  function clickProjectType(even, treeId, treeNode) {
-    $("[name='project$projectTypeName']").val(treeNode.name);
-    $("[name='project$projectTypeId']").val(treeNode.id);
-  }
-
-  function clickArea(even, treeId, treeNode) {
-    $("[name='project$xzqmc']").val(treeNode.name);
-    $("[name='project$xzqdm']").val(treeNode.id);
-  }
-
-  function clickZrbm(even, treeId, treeNode) {
-      $("[name='project$zrbm']").val(treeNode.name);
-      $("[name='project$zrbmId']").val(treeNode.id);
-  }
-
-  function clickBelongCompany(even, treeId, treeNode) {
-      $("[name='project$belongCompanyname']").val(treeNode.name);
-      $("[name='project$belongCompanyid']").val(treeNode.id);
-  }
 
 
 

+ 26 - 1
zjugis-business/src/main/resources/templates/TravelCost/index.ftl

@@ -302,7 +302,8 @@
         <div class="qjsjxx-box">
           <table id="boatCarTable" class="form-table-info">
             <tr style="height: 37px;">
-              <td style="width: 2%;"></td>
+              <td class="operation_head_td" style="width: 4%;"></td>
+              <td style="width: 4%;">序号</td>
               <td style="width: 9%;">出发日期</td>
               <td style="width: 10%;">出发地点</td>
               <td style="width: 9%;">到达日期</td>
@@ -454,5 +455,29 @@
       margin-right: 8px;
       cursor: pointer;
     }
+    .operation_icon {
+        white-space: nowrap;
+    }
+    .operation_icon>span {
+        cursor: pointer;
+        display: inline-block;
+        width: 26px;
+        height: 26px;
+        background-repeat: no-repeat;
+        background-size: 100% 100%;
+    }
+    .up_btn {
+        background-image: url("/imgs/up_icon.png");
+    }
+    .down_btn {
+        background-image: url("/imgs/down_icon.png");
+    }
+    .qjsjClass:first-child .up_btn {
+        background-image: url("/imgs/up_disabled_icon.png");
+
+    }
+    .qjsjClass:last-child .down_btn {
+        background-image: url("/imgs/down_disabled_icon.png");
+    }
   </style>
 </@w.workFlow>

+ 25 - 1
zjugis-business/src/main/resources/templates/TravelCost/js/index.js

@@ -163,7 +163,8 @@
         trDom.style.backgroundColor = "#fff";
         trDom.id = "boat_car_" + i;
         trDom.className = 'qjsjClass'
-        trDom.innerHTML = '<td name="boat_car_seq">' + (i + 1) + '</td>'
+        trDom.innerHTML = '<td class="operation_icon"><span class="up_btn"></span><span class="down_btn"></span></td>'
+            + '<td name="boat_car_seq">' + (i + 1) + '</td>'
             + '<td>'
             + '<div class="form-flex">'
             + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
@@ -298,6 +299,27 @@
             totalBoatCarAmount()
             totalAmount()
         });
+        /**
+         * 上移、下移JS交互效果实现
+         * */
+        $(".up_btn").unbind('click')
+        $(".up_btn").click(function(){
+            var currentTrDom = $(this).parent().parent();
+            var prevTrDom = $(currentTrDom).prev();
+            if(prevTrDom.length > 0){
+                prevTrDom.before(currentTrDom);
+                buildSeq("boat_car_seq");
+            }
+        })
+        $(".down_btn").unbind('click')
+        $(".down_btn").click(function(){
+            var currentTrDom = $(this).parent().parent();
+            var nextTrDom = $(currentTrDom).next();
+            if(nextTrDom.length > 0){
+                nextTrDom.after(currentTrDom);
+                buildSeq("boat_car_seq");
+            }
+        })
         $("#editBtn_boat_car_" + i).click(function () {
             const span = $(this).find("span");
             const html = span.html();
@@ -557,6 +579,8 @@
                 $("#delBtn_boat_car_" + i).css("display", "none");
             }
         }
+        $(".operation_head_td").css("display", "none")
+        $("#boatCarTbody>tr").find('.operation_icon').css("display", "none")
         let detailElement = document.getElementById(detailType + "_" + i);
         let detailInput = detailElement.getElementsByTagName("input");
         for (let j = 0; j < detailInput.length; j++) {

+ 1 - 1
zjugis-module-infra/zjugis-module-infra-biz/src/main/resources/bootstrap-local.yaml

@@ -9,7 +9,7 @@ spring:
     nacos:
       server-addr: 10.10.10.7:8848
       discovery:
-        namespace: d62c66f5-9ddc-40e9-9716-65f65557a557 # 命名空间。这里使用 dev 开发环境
+        namespace: b8c5fc93-8b01-491f-b75a-3b99d1e21f42 # 命名空间。这里使用 dev 开发环境
         metadata:
           version: 1.0.0 # 服务实例的版本号,可用于灰度发布
 

+ 3 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/controller/admin/user/vo/user/UserBaseVO.java

@@ -34,6 +34,9 @@ public class UserBaseVO {
     @Schema(description = "部门ID", example = "我是一个用户")
     private String deptId;
 
+    @Schema(description = "部门名称", example = "我是一个用户")
+    private String deptName;
+
     @Schema(description = "次要部门", example = "我是一个用户")
     private List<String> deptIds;