ソースを参照

保存接口增加流程审批意见参数,调整流程快照生成时机

cfort 2 年 前
コミット
60f7cd99b2

+ 208 - 208
src/api/platform/bpmn/bpmTask.js

@@ -5,63 +5,63 @@ import { BPMN_URL } from '@/api/baseUrl'
  * 查询列表数据
  * 查询列表数据
  * @param {*} params
  * @param {*} params
  */
  */
-export function queryPageList(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/query',
-    method: 'post',
-    data: params
-  })
+export function queryPageList (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/query',
+        method: 'post',
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 删除数据
  * 删除数据
  * @param {*} params
  * @param {*} params
  */
  */
-export function remove(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/remove',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function remove (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/remove',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 获取数据
  * 获取数据
  * @param {*} params
  * @param {*} params
  */
  */
-export function get(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/get',
-    method: 'get',
-    params: params
-  })
+export function get (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/get',
+        method: 'get',
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 锁定任务
  * 锁定任务
  * @param {*} params
  * @param {*} params
  */
  */
-export function lock(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/lock',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function lock (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/lock',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 解锁任务
  * 解锁任务
  * @param {*} params
  * @param {*} params
  */
  */
-export function unlock(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/unlock',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function unlock (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/unlock',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
@@ -69,328 +69,328 @@ export function unlock(params) {
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  * @deprecated 废弃,职责不清
  * @deprecated 废弃,职责不清
  */
  */
-export function complete(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/complete',
-    method: 'post',
-    isLoading: true,
-    data: ActionUtils.formatParams(params)
-  })
+export function complete (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/complete',
+        method: 'post',
+        isLoading: true,
+        data: ActionUtils.formatParams(params)
+    })
 }
 }
 
 
 /**
 /**
  * 终止流程
  * 终止流程
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function doEndProcess(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/doEndProcess',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function doEndProcess (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/doEndProcess',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 挂起流程
  * 挂起流程
  * @param {*} params
  * @param {*} params
  */
  */
-export function suspendProcess(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/suspendProcess',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function suspendProcess (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/suspendProcess',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 恢复流程
  * 恢复流程
  * @param {*} params
  * @param {*} params
  */
  */
-export function recoverProcess(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/recoverProcess',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function recoverProcess (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/recoverProcess',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 保存加签
  * 保存加签
  * @param  {[type]} data 参数对象
  * @param  {[type]} data 参数对象
  */
  */
-export function doAddSignTask(data) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/doAddSignTask',
-    method: 'post',
-    isLoading: true,
-    data: data
-  })
+export function doAddSignTask (data) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/doAddSignTask',
+        method: 'post',
+        isLoading: true,
+        data: data
+    })
 }
 }
 
 
 /**
 /**
  * 补签
  * 补签
  * @param  {[type]} data 参数对象
  * @param  {[type]} data 参数对象
  */
  */
-export function saveTaskChange(data) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/chage/save',
-    method: 'post',
-    isLoading: true,
-    data: data
-  })
+export function saveTaskChange (data) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/chage/save',
+        method: 'post',
+        isLoading: true,
+        data: data
+    })
 }
 }
 
 
 /**
 /**
  * 节点审批历史
  * 节点审批历史
  * @param {*} params
  * @param {*} params
  */
  */
-export function getNodeApproval(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/nodeApproval',
-    method: 'get',
-    params: params
-  })
+export function getNodeApproval (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/nodeApproval',
+        method: 'get',
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 批量同意任务
  * 批量同意任务
  * @param {*} params
  * @param {*} params
  */
  */
-export function agreeBatch(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/agree/batch',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function agreeBatch (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/agree/batch',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 批量挂起任务
  * 批量挂起任务
  * @param {*} params
  * @param {*} params
  */
  */
-export function batchSuspendProcess(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/batchSuspendProcess',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function batchSuspendProcess (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/batchSuspendProcess',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 批量恢复任务
  * 批量恢复任务
  * @param {*} params
  * @param {*} params
  */
  */
-export function batchRecoverProcess(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/batchRecoverProcess',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function batchRecoverProcess (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/batchRecoverProcess',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 保存数据
  * 保存数据
  * @param {*} params
  * @param {*} params
  */
  */
-export function save(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/save',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function save (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/save',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 分配人员
  * 分配人员
  * @param {*} params
  * @param {*} params
  */
  */
-export function assignee(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/assignee',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function assignee (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/assignee',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 流程任务获取表单数据
  * 流程任务获取表单数据
  * @param {*} params
  * @param {*} params
  */
  */
-export function getTaskFormData(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/getFormData',
-    method: 'get',
-    params: params
-  })
+export function getTaskFormData (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/getFormData',
+        method: 'get',
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 任务办理数据(同意、反对、弃权)
  * 任务办理数据(同意、反对、弃权)
  * @param {*} data
  * @param {*} data
  */
  */
-export function agreeData(data) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/agreeData/vo',
-    method: 'post',
-    data: data
-  })
+export function agreeData (data) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/agreeData/vo',
+        method: 'post',
+        data: data
+    })
 }
 }
 
 
 /**
 /**
  * 获取驳回数据
  * 获取驳回数据
  * @param {*} params
  * @param {*} params
  */
  */
-export function toReject(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/toReject',
-    method: 'get',
-    params: params
-  })
+export function toReject (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/toReject',
+        method: 'get',
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 获取驳回上一步
  * 获取驳回上一步
  * @param {*} params
  * @param {*} params
  */
  */
-export function toRejectToPrevious(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/toRejectToPrevious',
-    method: 'get',
-    params: params
-  })
+export function toRejectToPrevious (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/toRejectToPrevious',
+        method: 'get',
+        params: params
+    })
 }
 }
 /**
 /**
  * 获取驳回发起人
  * 获取驳回发起人
  * @param {*} params
  * @param {*} params
  */
  */
-export function toRejectToStart(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/toRejectStarter',
-    method: 'get',
-    params: params
-  })
+export function toRejectToStart (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/toRejectStarter',
+        method: 'get',
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 获取补签数据
  * 获取补签数据
  * @param {*} params
  * @param {*} params
  */
  */
-export function toAddSignTask(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/toAddSignTask',
-    method: 'get',
-    params: params
-  })
+export function toAddSignTask (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/toAddSignTask',
+        method: 'get',
+        params: params
+    })
 }
 }
 
 
 /**
 /**
  * 处理任务-同意
  * 处理任务-同意
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function agree(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/agree',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function agree (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/agree',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 处理任务-反对
  * 处理任务-反对
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function oppose(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/oppose',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function oppose (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/oppose',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 处理任务-弃权
  * 处理任务-弃权
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function abandon(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/abandon',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function abandon (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/abandon',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 处理任务-撤销
  * 处理任务-撤销
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function revoke(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/revoke',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function revoke (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/revoke',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 处理任务-驳回
  * 处理任务-驳回
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function reject(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/reject',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function reject (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/reject',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 处理任务-驳回发起人
  * 处理任务-驳回发起人
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function rejectToStarter(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/reject/starter',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function rejectToStarter (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/reject/starter',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 
 /**
 /**
  * 处理任务-驳回上一步
  * 处理任务-驳回上一步
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function rejectToPrevious(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/reject/previous',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function rejectToPrevious (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/reject/previous',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 /**
 /**
  * 节点按钮设置-保存
  * 节点按钮设置-保存
  * @param  {[type]} params 参数对象
  * @param  {[type]} params 参数对象
  */
  */
-export function bpmTaskSave(params) {
-  return request({
-    url: BPMN_URL() + '/bpm/task/save/task',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function bpmTaskSave (params) {
+    return request({
+        url: BPMN_URL() + '/bpm/task/save/task',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 }
 
 

+ 324 - 321
src/business/platform/bpmn/components/approval-opinion/index.vue

@@ -1,105 +1,106 @@
 <template>
 <template>
-  <div>
-     <!--
-    <div v-if="enableCommon">
-     <template v-if="!disabled && commonStatments && commonStatments.length>0">
+    <div>
+        <!-- <div v-if="enableCommon">
+            <template v-if="!disabled && commonStatments && commonStatments.length>0">
+                <el-dropdown
+                    placement="bottom-start"
+                    @command="handleCommonStatment"
+                >
+                    <el-link class="el-dropdown-link" type="primary" :underline="false">
+                        常用语<i class="el-icon-arrow-down el-icon--right" />
+                    </el-link>
+                    <el-dropdown-menu slot="dropdown" style="width:500px;">
+                        <template v-if="commonStatments && commonStatments.length>0">
+                            <template v-for="(item,i) in commonStatments">
+                                <el-dropdown-item
+                                    :key="i"
+                                    :command="item"
+                                >{{ item.value }}&nbsp;</el-dropdown-item>
+                            </template>
+                            <el-dropdown-item
+                                v-if="totalCount >5"
+                                divided
+                                command="more"
+                            >
+                                <span class="el-dropdown-link">>>更多...</span>
+                            </el-dropdown-item>
+                        </template>
+                        <template v-else>
+                            <el-dropdown-item
+                                command="none"
+                            >
+                                <span>未设置常用语</span>
+                            </el-dropdown-item>
+                        </template>
+                    </el-dropdown-menu>
+                </el-dropdown>
+            </template>
+            <span v-else class="el-dropdown-link" @click="handleNoData">
+                常用语<i class="el-icon-arrow-down el-icon--right" />
+            </span>
+            <!== 快捷常用语 ==>
+            <el-link
+                v-for="(shortcut,i) in shortcutTags"
+                :key="i"
+                :type="shortcut.type"
+                @click="handleShortcut(shortcut)"
+            >{{ shortcut.label }}</el-link>
+        </div> -->
+
         <el-dropdown
         <el-dropdown
-          placement="bottom-start"
-          @command="handleCommonStatment"
+            style="width: 100%;"
+            size="mini"
+            placement="top-start"
+            trigger="click"
+            @click.native="reqPhrase($store.getters.userInfo.employee.groupID,elFormItem)"
+            @command="handleCommand"
         >
         >
-          <el-link class="el-dropdown-link" type="primary" :underline="false">
-            常用语<i class="el-icon-arrow-down el-icon--right" />
-          </el-link>
-          <el-dropdown-menu slot="dropdown" style="width:500px;">
-            <template v-if="commonStatments && commonStatments.length>0">
-              <template v-for="(item,i) in commonStatments">
+            <el-input
+                ref="input"
+                v-model="data"
+                type="textarea"
+                rows="2"
+                maxlength="2000"
+                show-word-limit
+                :disabled="disabled"
+                :placeholder="placeholder"
+            />
+            <el-button
+                size="mini"
+                title="添加短语"
+                plain
+                icon="el-icon-folder-add"
+                align="center"
+                class="elButtonPlace"
+                @click.stop="addDict($store.getters.userInfo.employee.groupID,elFormItem)"
+            />
+            <el-dropdown-menu v-show="menuHide" slot="dropdown">
                 <el-dropdown-item
                 <el-dropdown-item
-                  :key="i"
-                  :command="item"
-                >{{ item.value }}&nbsp;</el-dropdown-item>
-              </template>
-              <el-dropdown-item
-                v-if="totalCount >5"
-                divided
-                command="more"
-              >
-                <span class="el-dropdown-link">>>更多...</span>
-              </el-dropdown-item>
-            </template>
-            <template v-else>
-              <el-dropdown-item
-                command="none"
-              >
-                <span>未设置常用语</span>
-              </el-dropdown-item>
-            </template>
-          </el-dropdown-menu>
-        </el-dropdown>
-      </template>
-      <span v-else class="el-dropdown-link" @click="handleNoData">
-        常用语<i class="el-icon-arrow-down el-icon--right" />
-      </span> -->
-      <!--快捷常用语
-         <el-link
-        v-for="(shortcut,i) in shortcutTags"
-        :key="i"
-        :type="shortcut.type"
-        @click="handleShortcut(shortcut)"
-      >{{ shortcut.label }}</el-link>
-    </div>
-        -->
-
-   <el-dropdown  style="width: 100%;" size="mini"
-    	   @click.native="reqPhrase($store.getters.userInfo.employee.groupID,elFormItem)"
-    	   placement="top-start"
-    	   trigger="click"
-    	   @command="handleCommand"
-    	   >
+                    v-for="(item,index) in selectModel"
+                    :key="index"
+                    :command="item.contextName"
+                >
+                    {{ index+1 }}. {{ item.contextName | ellipsis }}
 
 
-    		 <el-input
-    		   ref="input"
-    		   v-model="data"
-    		   type="textarea"
-    		   rows="2"
-    		   maxlength="2000"
-    		   show-word-limit
-    		   :disabled="disabled"
-    		   :placeholder="placeholder"
-    		 />
-
-    		 <el-button
-    			@click.stop="addDict($store.getters.userInfo.employee.groupID,elFormItem)"
-    			size="mini"
-    			title='添加短语'
-    			plain
-    			icon="el-icon-folder-add"
-    			align="center"
-    			class="elButtonPlace"
-    			/>
-
-    		<el-dropdown-menu slot="dropdown" v-show="menuHide" >
-    			  <el-dropdown-item v-for="(item,index) in selectModel"
-    			  :key="index" :command="item.contextName">
-    			  {{index+1}}. {{item.contextName | ellipsis}}
-
-    			  <span style="float: right;margin-left:50px ;color: #EB6709;"
-    				  @click.stop="deleteDicts(item.uuId,data)">删</span>
-    			  </el-dropdown-item>
-    		</el-dropdown-menu>
-
-    </el-dropdown>
+                    <span
+                        style="float: right;margin-left:50px ;color: #EB6709;"
+                        @click.stop="deleteDicts(item.uuId,data)"
+                    >删</span>
+                </el-dropdown-item>
+            </el-dropdown-menu>
+        </el-dropdown>
 
 
-     <Dictionaryitem v-if="dict_add" @proceedCont="proceedCont()"  ref='dict_add'> </Dictionaryitem>
+        <Dictionaryitem v-if="dict_add" ref="dict_add" @proceedCont="proceedCont()" />
 
 
-    <common-statment-dialog
-      :visible="commonStatmentVisible"
-      :title="title"
-      :action="action"
-      label-key="value"
-      @close="visible => commonStatmentVisible= visible"
-      @action-event="handleActionEvent"
-    />
-  </div>
+        <common-statment-dialog
+            :visible="commonStatmentVisible"
+            :title="title"
+            :action="action"
+            label-key="value"
+            @close="visible => commonStatmentVisible= visible"
+            @action-event="handleActionEvent"
+        />
+    </div>
 </template>
 </template>
 <script>
 <script>
 import { queryIncludeNull } from '@/api/platform/bpmn/bpmCommonStatment'
 import { queryIncludeNull } from '@/api/platform/bpmn/bpmCommonStatment'
@@ -108,248 +109,250 @@ import emitter from '@/plugins/element-ui/src/mixins/emitter'
 import ActionUtils from '@/utils/action'
 import ActionUtils from '@/utils/action'
 import CommonStatmentDialog from '@/business/platform/bpmn/components/common-statment/dialog'
 import CommonStatmentDialog from '@/business/platform/bpmn/components/common-statment/dialog'
 import request from '@/utils/request'
 import request from '@/utils/request'
-import { BPMN_URL } from'@/api/baseUrl'
+import { BPMN_URL } from '@/api/baseUrl'
 import Dictionaryitem from '@/business/platform/form/formrender/dynamic-form/addCont/dictionaryitem-add'
 import Dictionaryitem from '@/business/platform/form/formrender/dynamic-form/addCont/dictionaryitem-add'
 
 
 export default {
 export default {
-  components: {
-    CommonStatmentDialog,
-    Dictionaryitem
-  },
-  mixins: [emitter],
-  props: {
-    value: {
-      type: String
-    },
-    action: {
-      type: String
+    components: {
+        CommonStatmentDialog,
+        Dictionaryitem
     },
     },
-    enableCommon: {
-      type: Boolean,
-      default: true
-    },
-    disabled: {
-      type: Boolean,
-      default: false
-    },
-    placeholder: {
-      type: String,
-      default: '请输入审批意见'
-    }
-  },
-  inject: {
-    elForm: {
-      default: ''
+    filters: { // 定义过滤器
+        ellipsis (value) {
+            if (!value) return ''
+            if (value.length > 80) {
+                return value.slice(0, 80) + '...'
+            }
+            return value
+        }
     },
     },
-    elFormItem: {
-      default: ''
-    }
-  },
-  data() {
-    return {
-      commonStatmentVisible: false,
-      title: '',
-      shortcutTags: [{
-        type: 'success',
-        label: '同意'
-      },
-      {
-        type: 'danger',
-        label: '反对'
-      },
-      {
-        type: 'warning',
-        label: '拒绝'
-      }],
-      commonStatments: [],
-      totalCount: 0,
-       selectModel:[],
-       menuHide:true,
-       watchKey:false,
-       inputKey:"",
-       dict_add:false,
-       data: ''
-    }
-  },
-  filters: { //定义过滤器
-    ellipsis(value) {
-      if (!value) return ''
-      if (value.length > 80) {
-        return value.slice(0, 80) + '...'
-      }
-      return value
-    }
-  },
-  created(){
-    setTimeout(()=> {
-        this.data = this.value ? this.value : '同意'
-    },500)
-  },
-  watch: {
-    data:{
-        handler(){
-          this.$emit('input', this.data)
+    mixins: [emitter],
+    props: {
+        value: {
+            type: String
         },
         },
-        immediate: true
-    },
-    value: {
-      handler(val, oldVal) {
-        if (!valueEquals(val, oldVal)) {
-          this.dispatch('ElFormItem', 'el.form.change', val)
+        action: {
+            type: String
+        },
+        enableCommon: {
+            type: Boolean,
+            default: true
+        },
+        disabled: {
+            type: Boolean,
+            default: false
+        },
+        placeholder: {
+            type: String,
+            default: '请输入审批意见'
+        },
+        unCompleteOpinion: {
+            type: String,
+            default: '同意'
         }
         }
-      },
-      immediate: true
     },
     },
-    action: {
-      handler(val, oldVal) {
-        if (this.enableCommon && !this.disabled) {
-          this.$nextTick(() => {
-            this.loadCommonStatment()
-          })
+    inject: {
+        elForm: {
+            default: ''
+        },
+        elFormItem: {
+            default: ''
         }
         }
-      },
-      immediate: true
-    }
-  },
-  methods: {
-    loadCommonStatment() {
-      this.commonStatments = []
-      let action = this.action
-      if (action === 'endProcess' || this.action === 'stop') {
-        action = 'manualend'
-      }
-      queryIncludeNull(ActionUtils.formatParams({
-        'Q^ACTION_^S': action,
-        'Q^CREATE_BY_^S': this.$store.getters.userId
-      }, {
-        limit: 5
-      })).then(response => {
-        const data = response.data
-        this.commonStatments = data.dataResult || []
-        this.totalCount = data.pageResult ? data.pageResult.totalCount : 0
-      })
     },
     },
-    handleShortcut({ label }) {
-      if (this.disabled) {
-        return
-      }
-      this.data = label
-    },
-    handleCommonStatment(command) {
-      if (this.disabled) {
-        return
-      }
-      if (this.$utils.isString(command) && command === 'none') {
-        return
-      }
-      if (this.$utils.isString(command) && command === 'more') {
-        this.commonStatmentVisible = true
-        this.title = '常用语列表'
-        return
-      }
-      this.data = command.value
-    },
-    handleNoData() {
-      ActionUtils.warning('未有更多常用语!')
+    data () {
+        return {
+            commonStatmentVisible: false,
+            title: '',
+            shortcutTags: [{
+                type: 'success',
+                label: '同意'
+            },
+            {
+                type: 'danger',
+                label: '反对'
+            },
+            {
+                type: 'warning',
+                label: '拒绝'
+            }],
+            commonStatments: [],
+            totalCount: 0,
+            selectModel: [],
+            menuHide: true,
+            watchKey: false,
+            inputKey: '',
+            dict_add: false,
+            data: ''
+        }
     },
     },
-    getCursorPos(pTextArea) {
-      let cursurPosition = -1
-      if (pTextArea.selectionStart) { // 非IE浏览器
-        cursurPosition = pTextArea.selectionStart
-      } else { // IE
-        var range = document.selection.createRange()
-        range.moveStart('character', -pTextArea.value.length)
-        cursurPosition = range.text.length
-      }
-      return cursurPosition
+    watch: {
+        data: {
+            handler (val) {
+                this.$emit('input', this.data)
+            },
+            immediate: true
+        },
+        value: {
+            handler (val, oldVal) {
+                if (!valueEquals(val, oldVal)) {
+                    this.dispatch('ElFormItem', 'el.form.change', val)
+                }
+            },
+            immediate: true
+        },
+        action: {
+            handler (val, oldVal) {
+                if (this.enableCommon && !this.disabled) {
+                    this.$nextTick(() => {
+                        this.loadCommonStatment()
+                    })
+                }
+            },
+            immediate: true
+        }
     },
     },
-    handleActionEvent(key, data) {
-      // console.log(key, data)
-      if (key === 'confirm') {
-        this.data = data.value
-        this.commonStatmentVisible = false
-      }
+    created () {
+        setTimeout(() => {
+            this.data = this.unCompleteOpinion || this.value
+        }, 500)
     },
     },
-    /* 请求记忆数据库 */
-    reqPhrase(orderId,action){
-    if(!this.watchKey || this.inputKey!=action.labelFor){
-        this.watchKey = true
-      	this.inputKey = action.labelFor
-            request({
-                url:BPMN_URL()+'/sys/SysDataContext/getDataContext',
-                method: 'post',
-                data:  JSON.stringify({
-                     'attrName':this.inputKey,
-                      'orderId':orderId,
-                       })
-              }).then(response => {
-                if(response.state===200){
+    methods: {
+        loadCommonStatment () {
+            this.commonStatments = []
+            let action = this.action
+            if (action === 'endProcess' || this.action === 'stop') {
+                action = 'manualend'
+            }
+            queryIncludeNull(ActionUtils.formatParams({
+                'Q^ACTION_^S': action,
+                'Q^CREATE_BY_^S': this.$store.getters.userId
+            }, {
+                limit: 5
+            })).then(response => {
+                const data = response.data
+                this.commonStatments = data.dataResult || []
+                this.totalCount = data.pageResult ? data.pageResult.totalCount : 0
+            })
+        },
+        handleShortcut ({ label }) {
+            if (this.disabled) {
+                return
+            }
+            this.data = label
+        },
+        handleCommonStatment (command) {
+            if (this.disabled) {
+                return
+            }
+            if (this.$utils.isString(command) && command === 'none') {
+                return
+            }
+            if (this.$utils.isString(command) && command === 'more') {
+                this.commonStatmentVisible = true
+                this.title = '常用语列表'
+                return
+            }
+            this.data = command.value
+        },
+        handleNoData () {
+            ActionUtils.warning('未有更多常用语!')
+        },
+        getCursorPos (pTextArea) {
+            let cursurPosition = -1
+            if (pTextArea.selectionStart) { // 非IE浏览器
+                cursurPosition = pTextArea.selectionStart
+            } else { // IE
+                var range = document.selection.createRange()
+                range.moveStart('character', -pTextArea.value.length)
+                cursurPosition = range.text.length
+            }
+            return cursurPosition
+        },
+        handleActionEvent (key, data) {
+            // console.log(key, data)
+            if (key === 'confirm') {
+                this.data = data.value
+                this.commonStatmentVisible = false
+            }
+        },
+        /* 请求记忆数据库 */
+        reqPhrase (orderId, action) {
+            if (!this.watchKey || this.inputKey != action.labelFor) {
+                this.watchKey = true
+                this.inputKey = action.labelFor
+                request({
+                    url: BPMN_URL() + '/sys/SysDataContext/getDataContext',
+                    method: 'post',
+                    data: JSON.stringify({
+                        'attrName': this.inputKey,
+                        'orderId': orderId
+                    })
+                }).then(response => {
+                    if (response.state === 200) {
     				 this.selectModel = response.variables.page
     				 this.selectModel = response.variables.page
-                }
-                }).catch(error => {
+                    }
+                }).catch(() => {
                     this.$message.error('系统忙、或数据错误,请稍后再试')
                     this.$message.error('系统忙、或数据错误,请稍后再试')
                 })
                 })
-              }
-          },
-       //选定短语
-       handleCommand(val){
-        if(!this.data){
-         this.data = val
-         }else{
-            this.data = this.data + val
-         }
-       },
-       //删除字典内容
-       deleteDicts(id,name){
-         this.menuHide=false
-         this.$confirm(
-           `确定对[ ${name} ]进行 [ 删除操作 ]?`,
-           "提示",
-           {
-             confirmButtonText: "确定",
-             cancelButtonText: "取消",
-             type: "warning"
-           }
-         ).then(() => {
-            this.watchKey = false
-             request({
-                 url:BPMN_URL()+'/sys/SysDataContext/deleteDataContext',
-                 method: 'post',
-                 data:  JSON.stringify({
-                 'uuId':id,
-                   })
-               }).then(response => {
-                 this.menuHide=true
-               if(response.state===200){
-              this.$message({
-                message: '删除成功!',
-                type: 'success',
-                duration: 800,
-                onClose: () => {
-                  this.visible = false
-                   this.$emit("proceedCont")
+            }
+        },
+        // 选定短语
+        handleCommand (val) {
+            if (!this.data) {
+                this.data = val
+            } else {
+                this.data = this.data + val
+            }
+        },
+        // 删除字典内容
+        deleteDicts (id, name) {
+            this.menuHide = false
+            this.$confirm(
+                `确定对[ ${name} ]进行 [ 删除操作 ]?`,
+                '提示',
+                {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
                 }
                 }
-              })
-                 }
-                 }).catch(error => {
-                     this.$message.error('系统忙、或数据错误,请稍后再试')
-                 })
-         }).catch(() => {
-                  });
-       },
-       // 添加字典
-       addDict (orderId,action) {
-         this.dict_add = true
-         this.$nextTick(() => {
-           this.$refs.dict_add.init(orderId,action.labelFor,action.label)
-         })
-       },
-       //回调进行再次点击开关
-       proceedCont(){
-         this.watchKey = false//防止恶意查询 。 为空表示可以点击了
-       }
-
-
-  }
+            ).then(() => {
+                this.watchKey = false
+                request({
+                    url: BPMN_URL() + '/sys/SysDataContext/deleteDataContext',
+                    method: 'post',
+                    data: JSON.stringify({
+                        'uuId': id
+                    })
+                }).then(response => {
+                    this.menuHide = true
+                    if (response.state === 200) {
+                        this.$message({
+                            message: '删除成功!',
+                            type: 'success',
+                            duration: 800,
+                            onClose: () => {
+                                this.visible = false
+                                this.$emit('proceedCont')
+                            }
+                        })
+                    }
+                }).catch(() => {
+                    this.$message.error('系统忙、或数据错误,请稍后再试')
+                })
+            }).catch(() => {
+            })
+        },
+        // 添加字典
+        addDict (orderId, action) {
+            this.dict_add = true
+            this.$nextTick(() => {
+                this.$refs.dict_add.init(orderId, action.labelFor, action.label)
+            })
+        },
+        // 回调进行再次点击开关
+        proceedCont () {
+            this.watchKey = false// 防止恶意查询 。 为空表示可以点击了
+        }
+    }
 }
 }
 </script>
 </script>

+ 17 - 15
src/business/platform/bpmn/form/action.js

@@ -160,6 +160,7 @@ export default {
         // 是否保存[节点-按钮设置-保存]
         // 是否保存[节点-按钮设置-保存]
         handleSave () {
         handleSave () {
             const formData = this.getFormData()
             const formData = this.getFormData()
+            const opinion = this.hasFormOpinion() ? this.getFormOpinionData() : ''
             const loading = this.$loading({
             const loading = this.$loading({
                 lock: true,
                 lock: true,
                 text: this.$t('common.saving')
                 text: this.$t('common.saving')
@@ -167,7 +168,8 @@ export default {
             if (!formData) return
             if (!formData) return
             bpmTaskSave({
             bpmTaskSave({
                 taskId: this.taskId,
                 taskId: this.taskId,
-                data: JSON.stringify(formData)
+                data: JSON.stringify(formData),
+                opinion
             }).then(response => {
             }).then(response => {
                 loading.close()
                 loading.close()
                 this.$alert(`已保存表单内容!`, {
                 this.$alert(`已保存表单内容!`, {
@@ -652,23 +654,23 @@ export default {
             if (!code) {
             if (!code) {
                 return
                 return
             }
             }
-            // 轮询流程是否结束,流程未结束不生成快照,每2秒查询一次,最多等待10秒钟
-            let timeout = 10000
-            const intervalTime = 2000
-            while (!(await this.isFinish(proId || proInstId))) {
-                timeout -= intervalTime
-                if (timeout <= 0) {
-                    // 超时,流程还未结束,结束生成快照
-                    console.log('流程未结束,无法生成快照')
-                    return
-                }
-                // 等待一段时间后再次查询
-                await new Promise(resolve => setTimeout(resolve, intervalTime))
-            }
             const sql = `select * from t_lcidglbdbb where shi_fou_zi_biao_ = 't_${code}' and ti_jiao_kuai_zhao = '是' and gui_dang_lei_xing = 'process'`
             const sql = `select * from t_lcidglbdbb where shi_fou_zi_biao_ = 't_${code}' and ti_jiao_kuai_zhao = '是' and gui_dang_lei_xing = 'process'`
             const { first = '' } = this.$store.getters.level
             const { first = '' } = this.$store.getters.level
-            this.$common.request('sql', sql).then(res => {
+            this.$common.request('sql', sql).then(async res => {
                 const { data = [] } = res.variables || {}
                 const { data = [] } = res.variables || {}
+                // 轮询流程是否结束,流程未结束不生成快照,每2秒查询一次,最多等待10秒钟
+                let timeout = 10000
+                const intervalTime = 2000
+                while (!(await this.isFinish(proId || proInstId))) {
+                    timeout -= intervalTime
+                    if (timeout <= 0) {
+                        // 超时,流程还未结束,结束生成快照
+                        console.log('流程未结束,无法生成快照')
+                        return
+                    }
+                    // 等待一段时间后再次查询
+                    await new Promise(resolve => setTimeout(resolve, intervalTime))
+                }
                 if (!data.length) {
                 if (!data.length) {
                     this.updateState(id, code, '已完成', null)
                     this.updateState(id, code, '已完成', null)
                     return
                     return

+ 126 - 118
src/business/platform/form/formrender/dynamic-form/components/approval-opinion/index.vue

@@ -35,7 +35,7 @@
                                     <span style="color: red;">退回、重新编辑</span>
                                     <span style="color: red;">退回、重新编辑</span>
                                 </span>
                                 </span>
                                 <span v-else-if="row[options[2].value] !== '反对'">
                                 <span v-else-if="row[options[2].value] !== '反对'">
-                                    {{ row[options[2].value]}}
+                                    {{ row[options[2].value] }}
                                 </span>
                                 </span>
                             </el-tag>
                             </el-tag>
                         </template>
                         </template>
@@ -65,7 +65,7 @@
                 <!-- 审批时间 -->
                 <!-- 审批时间 -->
                 <el-table-column :label="options[1].label" width="135">
                 <el-table-column :label="options[1].label" width="135">
                     <template slot-scope="{row, $index}">
                     <template slot-scope="{row, $index}">
-                        {{ row[options[1].value]}}
+                        {{ row[options[1].value] }}
                     </template>
                     </template>
                 </el-table-column>
                 </el-table-column>
                 <!-- 审批意见 -->
                 <!-- 审批意见 -->
@@ -82,7 +82,8 @@
                             </small>
                             </small>
                             <small
                             <small
                                 v-if="!limitHeight[$index]"
                                 v-if="!limitHeight[$index]"
-                                slot="after" class="el-dropdown-link"
+                                slot="after"
+                                class="el-dropdown-link"
                                 @click="onShowMore($index, true)"
                                 @click="onShowMore($index, true)"
                             >收起</small>
                             >收起</small>
                         </ibps-text-ellipsis>
                         </ibps-text-ellipsis>
@@ -94,7 +95,8 @@
             <template v-else>
             <template v-else>
                 <el-card
                 <el-card
                     v-for="(row, i) in opinionData"
                     v-for="(row, i) in opinionData"
-                    :key="i" shadow="hover"
+                    :key="i"
+                    shadow="hover"
                     class="ibps-mb-10"
                     class="ibps-mb-10"
                 >
                 >
                     <el-row
                     <el-row
@@ -145,139 +147,145 @@
         <ibps-approval-opinion
         <ibps-approval-opinion
             v-if="!readonly"
             v-if="!readonly"
             v-model="data"
             v-model="data"
+            :un-complete-opinion.sync="unComplate"
             :enable-common="commonCtatment"
             :enable-common="commonCtatment"
             :placeholder="placeholder"
             :placeholder="placeholder"
         />
         />
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
-    import Utils from '@/utils/util'
-    import { format, dateDealFmt } from '@/utils/fecha'
-    import IbpsApprovalOpinion from '@/business/platform/bpmn/components/approval-opinion'
-    import IbpsTextEllipsis from '@/components/ibps-text-ellipsis'
-    export default {
-        components: {
-            IbpsApprovalOpinion,
-            IbpsTextEllipsis
-        },
-        filters: {
-            filterData (val, config, data) {
-                // 审批人
-                if (config.value === 'auditorName') {
-                    if (Utils.isEmpty(data.auditor) && Utils.isNotEmpty(data.qualifiedExecutor)) {
-                        // 会签  审批人处理
-                        const name = []
-                        for (var i = 0; i < data.qualifiedExecutor.length; i++) {
-                            name.push(data.qualifiedExecutor[i].executor)
-                        }
-                        val = name.join(' ')
+import Utils from '@/utils/util'
+import { format, dateDealFmt } from '@/utils/fecha'
+import IbpsApprovalOpinion from '@/business/platform/bpmn/components/approval-opinion'
+import IbpsTextEllipsis from '@/components/ibps-text-ellipsis'
+export default {
+    components: {
+        IbpsApprovalOpinion,
+        IbpsTextEllipsis
+    },
+    filters: {
+        filterData (val, config, data) {
+            // 审批人
+            if (config.value === 'auditorName') {
+                if (Utils.isEmpty(data.auditor) && Utils.isNotEmpty(data.qualifiedExecutor)) {
+                    // 会签  审批人处理
+                    const name = []
+                    for (var i = 0; i < data.qualifiedExecutor.length; i++) {
+                        name.push(data.qualifiedExecutor[i].executor)
                     }
                     }
-                } else if (config.value === 'completeTime') {
-                    // 审批时间
-                    if (Utils.isNotEmpty(val)) {
-                        let dateObj = val
-                        const dateFormat = 'yyyy-MM-dd HH:mm:ss'
-                        try {
-                            if (typeof dateObj === 'number') {
-                                dateObj = new Date(dateObj)
-                            }
-                            if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
-                                // 需要把字符串转换日期格式
-                                dateObj = dateDealFmt.dealFmt(dateObj, dateFormat)
-                            }
-                            val = format(dateObj, dateFormat)
-                        } catch (error) {
-                            console.error('转换日期格式错误:', error)
-                            val = ''
+                    val = name.join(' ')
+                }
+            } else if (config.value === 'completeTime') {
+                // 审批时间
+                if (Utils.isNotEmpty(val)) {
+                    let dateObj = val
+                    const dateFormat = 'yyyy-MM-dd HH:mm:ss'
+                    try {
+                        if (typeof dateObj === 'number') {
+                            dateObj = new Date(dateObj)
+                        }
+                        if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
+                            // 需要把字符串转换日期格式
+                            dateObj = dateDealFmt.dealFmt(dateObj, dateFormat)
                         }
                         }
+                        val = format(dateObj, dateFormat)
+                    } catch (error) {
+                        console.error('转换日期格式错误:', error)
+                        val = ''
                     }
                     }
                 }
                 }
-                return val
             }
             }
+            return val
+        }
+    },
+    inject: {
+        elForm: {
+            default: ''
+        }
+    },
+    props: {
+        value: String,
+        // 字段
+        field: Object,
+        // 只读
+        readonly: {
+            type: Boolean,
+            default: false
         },
         },
-        inject: {
-            elForm: {
-                default: ''
-            }
+        // 只读样式
+        readonlyStyle: String,
+        // 审批意见
+        opinionData: {
+            type: Array
         },
         },
-        props: {
-            value: String,
-            // 字段
-            field: Object,
-            // 只读
-            readonly: {
-                type: Boolean,
-                default: false
-            },
-            // 只读样式
-            readonlyStyle: String,
-            // 审批意见
-            opinionData: {
-                type: Array
-            },
-            params: Object
+        // 未提交的审批意见
+        unComplate: {
+            type: String
         },
         },
-        data () {
-            return {
-                data: '',
-                isLimitHeight: {}
-            }
+        params: Object
+    },
+    data () {
+        return {
+            data: '',
+            isLimitHeight: {}
+        }
+    },
+    computed: {
+        commonCtatment () {
+            return this.field ? this.field.field_options.common_statment : true
         },
         },
-        computed: {
-            commonCtatment () {
-                return this.field ? this.field.field_options.common_statment : true
-            },
-            layout () {
-                return this.field ? this.field.field_options.arrangement : 'horizontal'
-            },
-            options () {
-                return this.field ? this.field.field_options.options : []
-            },
-            optionsCheckedLength () {
-                let k = 0
-                for (let i = 0; i < this.options.length; i++) {
-                    const option = this.options[i]
-                    if (option.checked) {
-                        k = i
-                    }
+        layout () {
+            return this.field ? this.field.field_options.arrangement : 'horizontal'
+        },
+        options () {
+            return this.field ? this.field.field_options.options : []
+        },
+        optionsCheckedLength () {
+            let k = 0
+            for (let i = 0; i < this.options.length; i++) {
+                const option = this.options[i]
+                if (option.checked) {
+                    k = i
                 }
                 }
-                return k
-            },
-            placeholder () {
-                return this.field ? this.field.field_options.placeholder : ''
-            },
-            limitHeight () {
-                return this.isLimitHeight
             }
             }
+            return k
         },
         },
-        watch: {
-            value (val) {
-                this.data = val
-            },
-            data: {
-                handler (val) {
-                    this.$emit('update:value', val)
-                },
-                deep: true
+        placeholder () {
+            return this.field ? this.field.field_options.placeholder : ''
+        },
+        limitHeight () {
+            return this.isLimitHeight
+        }
+    },
+    watch: {
+        value (val) {
+            this.data = val
+        },
+        data: {
+            handler (val) {
+                this.$emit('update:value', val || this.unComplate)
             },
             },
-            opinionData: {
-                handler (val) {
-                    if (this.$utils.isNotEmpty(val)) {
-                        for (let i = 0; i < this.opinionData.length; i++) {
-                            this.isLimitHeight[i] = true
-                        }
-                    }
-                },
-                immediate: true
-            }
+            deep: true,
+            immediate: true
         },
         },
-        methods: {
-            onShowMore (i, isLimitHeight) {
-                const limitHeight = JSON.parse(JSON.stringify(this.isLimitHeight))
-                limitHeight[i] = isLimitHeight
-                this.isLimitHeight = {}
-                this.isLimitHeight = limitHeight
-            }
+        opinionData: {
+            handler (val) {
+                if (this.$utils.isNotEmpty(val)) {
+                    for (let i = 0; i < this.opinionData.length; i++) {
+                        this.isLimitHeight[i] = true
+                    }
+                }
+            },
+            immediate: true
+        }
+    },
+    methods: {
+        onShowMore (i, isLimitHeight) {
+            const limitHeight = JSON.parse(JSON.stringify(this.isLimitHeight))
+            limitHeight[i] = isLimitHeight
+            this.isLimitHeight = {}
+            this.isLimitHeight = limitHeight
         }
         }
     }
     }
-</script>
+}
+</script>

+ 4 - 0
src/business/platform/form/formrender/dynamic-form/dynamic-form-item.vue

@@ -29,6 +29,7 @@
                     :readonly="readonly"
                     :readonly="readonly"
                     :readonly-style="readonlyStyle"
                     :readonly-style="readonlyStyle"
                     :opinion-data="formOpinionData[fieldName]"
                     :opinion-data="formOpinionData[fieldName]"
+                    :un-complate="unComplateOpinion"
                     :params="params"
                     :params="params"
                     v-on="listeners"
                     v-on="listeners"
                 />
                 />
@@ -187,6 +188,9 @@ export default {
         formOpinionData () {
         formOpinionData () {
             return this.params.responseFormOpinionData || {}
             return this.params.responseFormOpinionData || {}
         },
         },
+        unComplateOpinion () {
+            return this.params.unComplateOpinion || ''
+        },
         listeners () {
         listeners () {
             return {
             return {
                 ...this.$listeners,
                 ...this.$listeners,

+ 4 - 0
src/business/platform/form/formrender/dynamic-form/dynamic-form.vue

@@ -168,6 +168,7 @@
                 responseOpinionFields: {}, // 表单的意见字段
                 responseOpinionFields: {}, // 表单的意见字段
                 responseFormOpinionData: {}, // 已填写的表单意见
                 responseFormOpinionData: {}, // 已填写的表单意见
                 responseLabelFields: {}, // 表单的文本字段
                 responseLabelFields: {}, // 表单的文本字段
+                unComplateOpinion: '', // 未提交的审批意见
                 invalidFields: {},
                 invalidFields: {},
                 activeStep: 0,
                 activeStep: 0,
                 titleList: [],
                 titleList: [],
@@ -241,6 +242,7 @@
                     responseFormula: this.responseFormula,
                     responseFormula: this.responseFormula,
                     responseLinkages: this.responseLinkages,
                     responseLinkages: this.responseLinkages,
                     responseFormOpinionData: this.responseFormOpinionData,
                     responseFormOpinionData: this.responseFormOpinionData,
+                    unComplateOpinion: this.unComplateOpinion,
                     readonly: this.readonly,
                     readonly: this.readonly,
                     readonlyStyle: this.readonlyStyle,
                     readonlyStyle: this.readonlyStyle,
                     labelWidth: this.labelWidth,
                     labelWidth: this.labelWidth,
@@ -461,10 +463,12 @@
             // 初始化表单意见
             // 初始化表单意见
             initResponseOpinionData() {
             initResponseOpinionData() {
                 this.responseFormOpinionData = {}
                 this.responseFormOpinionData = {}
+                this.unComplateOpinion = null
                 const opinionData = this.params ? this.params.formOpinionData || {} : {}
                 const opinionData = this.params ? this.params.formOpinionData || {} : {}
                 if (this.$utils.isEmpty(opinionData) || !this.hasFormOpinion()) {
                 if (this.$utils.isEmpty(opinionData) || !this.hasFormOpinion()) {
                     return
                     return
                 }
                 }
+                this.unComplateOpinion = opinionData.unComplateOpinion
                 const hasBindNode = opinionData.hasBindNode
                 const hasBindNode = opinionData.hasBindNode
                 const formOpinionConfig = opinionData.formOpinionConfig
                 const formOpinionConfig = opinionData.formOpinionConfig
                 if (hasBindNode) {
                 if (hasBindNode) {

+ 3 - 0
src/business/platform/form/utils/formUtil.js

@@ -848,6 +848,9 @@ const FormUtil = {
             if (Utils.isEmpty(opinion.completeTime)) { continue }
             if (Utils.isEmpty(opinion.completeTime)) { continue }
             formOpinionList.push(opinion)
             formOpinionList.push(opinion)
         }
         }
+        // 筛选出已保存未提交的审批意见
+        const unComplateOpinion = opinionList.find(i => i.completeTime === null).opinion
+        opinionData.unComplateOpinion = unComplateOpinion
 
 
         if (Utils.isEmpty(formOpinionConfig)) { // 没有绑定节点的
         if (Utils.isEmpty(formOpinionConfig)) { // 没有绑定节点的
             opinionData.hasBindNode = false
             opinionData.hasBindNode = false

+ 0 - 506
src/views/statistics/indexold.vue

@@ -1,506 +0,0 @@
-<template>
-  <!-- <dv-full-screen-container> -->
-    <el-scrollbar class="screen" ref="scrollDiv" >
-    <!-- :style="{height:height}" -->
-      <div class="statistics">
-        <div class="editDate">
-          <!-- <div class="stitle">实验室管理看板</div>
-          <div class="block" style="display:none">
-            <span class="demonstration">开始:</span>
-            <el-date-picker v-model="BeginDate" type="year" size="mini" value-format="yyyy" format="yyyy年"  style="width: 96px;"
-              :clearable="false" @change="checkYear(BeginDate,'begin')" placeholder="选择日期">
-            </el-date-picker>
-          </div>
-
-          <div class="block">
-            <span class="demonstration">查询年度:</span>
-            <!-- <el-date-picker v-model="endDate" type="year" size="mini" value-format="yyyy" format="yyyy年"  :clearable="false" style="width: 96px;"
-              @change="checkYear(endDate,'end')" placeholder="选择日期"> -->
-                <!-- <el-date-picker
-                  v-model="endDate"
-                  type="year"
-                  value-format="yyyy"
-                  @change="checkYear(endDate,'end')"
-                  placeholder="选择年">
-                </el-date-picker> -->
-            <!-- </el-date-picker> -->
-          <!-- </div>
-
-          <div class="block">
-            <el-button type="primary" size="mini" plain @click="selectAll">
-              查询
-            </el-button>
-          </div>
-
-          <div class="goBackButton" @click.prevent="goBack()" >
-            返回 -->
-          <!-- </div> -->
-
-        </div>
-        <!-- <div class="ttitle">质量目标统计</div> -->
-        <div class="componentsData" v-if="relOf">
-            <s1zhiLiangMuBiao :width="static=='row' ? '20%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[1]" :data = "getS1renwu()"/>
-            <s1jianCe :width="static=='row' ? '20%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[5]" :data = "getS2jianCe()" />
-            <s2manYiDu :width="static=='row' ? '20%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[7]"  :data = "getS2manYiDu()"/>
-            <s3tousu :width="static=='row' ? '20%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[6]" :data = "getS3tousu()"/>
-            <s13shengWu :width="static=='row' ? '20%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[17]" :data = "getS3tousu()"/>
-            <!-- <s1zhiLiang1 :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[2]"    />
-            <s1zhiLiang2 :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[3]"   />
-            <s1zhiLiang3 :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[4]"  /> -->
-
-            
-            <!-- <s4renYuanPeiXun :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[8]" :data = "getS4renYuanPeiXun()"/> -->
-
-            <!-- <none :width="static=='row' ? '20%': '100%'"
-            /> -->
-            <!-- <s6sheBeiWeiHu :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[10]" :data = "getS6sheBeiWeiHu()"/> -->
-            <!-- <s7sheBeiJiaoZhun :width="'50%'"
-            v-if="showAll || showComponents[12]" :data = "getJiaoYanObjNum()"/>
-            <s8sheBeiHeCha :width="'50%'"
-            v-if="showAll || showComponents[11]" :data = "gethechaObjNum()"/> -->
-            <!-- <s10waiBuNengLi :width="'50%'"
-            v-if="showAll || showComponents[14]" :data = "getnengtliObjNum()"/> -->
-            <!-- <s11biaoZhunWu :width="'50%'"
-            v-if="showAll || showComponents[15]" :data = "getbiaozhunObjNum()"/> -->
-            <!-- <s5renYuanJianDu :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[9]" :data = "getS5renYuanJianDu()"/> -->
-            <!-- <s9neiBuZhiLiang :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[13]" :data = "getS9neiBuZhiLiang()"/> -->
-            <!-- <s12fengXian :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[13]" :data = "getS12fengXian()"/> -->
-            <!-- <div class="clear"></div>
-        </div>
-        <div class="ttitle">人员培训与管理</div>
-        <div class="componentsData" v-if="relOf"> -->
-            <s4renYuanPeiXun :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[8]" :data = "getS4renYuanPeiXun()"/>
-            <s5renYuanJianDu :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[9]" :data = "getS5renYuanJianDu()"/>
-            <!-- <div class="clear"></div>
-
-        </div>
-        <div class="ttitle">设备维保</div>
-        <div class="componentsData" v-if="relOf"> -->
-            <s7sheBeiJiaoZhun :width="static=='row' ? '33%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[12]" :data = "getJiaoYanObjNum()"/>
-            <s8sheBeiHeCha :width="static=='row' ? '33%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[11]" :data = "gethechaObjNum()"/>
-            <s11biaoZhunWu :width="static=='row' ? '33%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[15]" :data = "getbiaozhunObjNum()"/>
-            <s16bzJunZhu :width="static=='row' ? '33%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[20]" :data = "getbzJunZhujNum()"/>
-            <s17bzXiBao :width="static=='row' ? '33%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[21]" :data = "getbzXiBaoObjNum()"/>
-            <!-- <div class="clear"></div>
-
-        </div>
-        <div class="ttitle">质量控制</div>
-        <div class="componentsData" v-if="relOf"> -->
-            <s9neiBuZhiLiang :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[13]" :data = "getS9neiBuZhiLiang()"/>
-            <s10waiBuNengLi :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[14]" :data = "getnengtliObjNum()"/>
-            <s14bufuhexiang :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[18]" :data = "getS14bufuhexiang()"/>
-            <!-- <div class="clear"></div>
-
-        </div>
-        <div class="ttitle">风险控制</div>
-        <div class="componentsData" v-if="relOf"> -->
-            <s12fengXian :width="static=='row' ? '25%': '100%'" :colorw = "colorw"
-            v-if="showAll || showComponents[16]" :data = "getS12fengXian()"/>
-            <div class="clear"></div>
-
-        </div>
-       
-
-
-
-      </div>
-    </el-scrollbar>
-  <!-- </dv-full-screen-container> -->
-</template>
-
-<script>
-  //全屏展示
-  import screenfull from 'screenfull'
-  //大屏标题组件
-  // import headerDecoration from './headerDecoration'
-
-  import s1zhiLiangMuBiao from './item/s1zhiLiangMuBiao.vue'
-  import s1zhiLiang1 from './item/s1zhiLiang1.vue'
-  import s1zhiLiang2 from './item/s1zhiLiang2.vue'
-  import s1zhiLiang3 from './item/s1zhiLiang3.vue'
-  
-  import s1jianCe from './item/s1jianCe.vue'
-  import s2manYiDu from './item/s2manYiDu.vue'
-  import s3tousu from './item/s3tousu.vue'
-  import s4renYuanPeiXun from './item/s4renYuanPeiXun.vue'
-  import s5renYuanJianDu from './item/s5renYuanJianDu.vue'
-  import s6sheBeiWeiHu from './item/s6sheBeiWeiHu.vue'
-  import s7sheBeiJiaoZhun from './item/s7sheBeiJiaoZhun.vue'
-  import s8sheBeiHeCha from './item/s8sheBeiHeCha.vue'
-  import s9neiBuZhiLiang from './item/s9neiBuZhiLiang.vue'
-  import s10waiBuNengLi from './item/s10waiBuNengLi.vue'
-  import s11biaoZhunWu from './item/s11biaoZhunWu.vue'
-  import s12fengXian from './item/s12fengXian.vue'
-  import s13shengWu from './item/s13shengWu.vue'
-  import s14bufuhexiang from './item/s14bufuhexiang.vue'
-  import s15tousu from './item/s15tousu.vue'
-  import s16bzJunZhu from './item/s16bzJunZhu.vue'
-  import s17bzXiBao from './item/s17bzXiBao.vue'
-
-
-  import none from './item/none.vue'
-
-  import { DBData ,getConfig,getJiaoYanObj, gethechaObj, getnengliObj, getbiaozhunObj,getbiaozhunTObj,getbzJunZhuObj,getbzJunZhuTObj,getbzXiBaoObj,getbzXiBaoTObj} from './js/selectDB.js'
-  import sendDatas from './sendDatas.js'
-  import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
-  export default {
-    components:{
-      // headerDecoration,
-      none,
-      s1zhiLiang1,
-      s1zhiLiang2,
-      s1zhiLiang3,
-      s1zhiLiangMuBiao,
-      s1jianCe,
-      s2manYiDu,
-      s3tousu,
-      s4renYuanPeiXun,
-      s5renYuanJianDu,
-      s6sheBeiWeiHu,
-      s7sheBeiJiaoZhun,
-      s8sheBeiHeCha,
-      s9neiBuZhiLiang,
-      s10waiBuNengLi,
-      s11biaoZhunWu,
-      s12fengXian,
-      s13shengWu,
-      s14bufuhexiang,
-      s15tousu,
-      s16bzJunZhu,
-      s17bzXiBao
-    },
-    props:{
-    shows:{ //传入的内容显示序号
-        type: Array,
-        default:() => []
-      },
-    static:{ //显示类型,默认为横向   ,作为表单统计图的外部引用为 line
-        type: String,
-        default:'row'
-      }
-   },
-    mixins: [sendDatas],
-    mounted() {
-      /*以shows是否有参数来判断, 是否需要仅显示部分子组件*/
-      if(this.shows.length>0){
-        this.showAll=false
-        this.isShowComponents()
-      }
-      /* 开始及结束时间的默认设置*/
-      if (!this.BeginDate && !this.endDate) {
-        this.BeginDate = this.getDate(1) + ''
-        this.endDate = this.getDate(0) + ''
-        this.dataScope.push(this.BeginDate)
-        this.dataScope.push(this.endDate)
-      }
-      this.getConfigData() //获取统计的配置
-    },
-    data() {
-      return {
-        height:(window.screen.height-200)+"px",
-        BeginDate: '',
-        endDate: '',
-        jiaoyanObj:[],
-        hechaObj:[],
-        nengliObj:[],
-        biaozhunObj:[],
-        biaozhunTObj:[],
-        bzJunZhuObj:[],
-        bzJunZhuTObj:[],
-        bzXiBaoObj:[],
-        bzXiBaoTObj:[],
-        relData: {},
-        relOf: false,
-        selectEnd: '',
-        selectBeg: '',
-        showAll:true,
-        timer: '',
-        showComponents:{},//显示全部统计子组件 , 若有新增,往后累计。 供动态表单进行查阅使用。
-        dataScope: [],
-        colorw: '#000'
-
-      }
-    },
-     beforeDestroy() {
-          clearInterval(this.timer);
-        },
-    methods: {
-      /* 判断是否统计子组件中传递过来的,是否需要隐藏。若需要则进行隐藏的遍历  */
-      isShowComponents(){
-        /* 将参数进行显示 */
-          for(let i=0;i<this.shows.length;i++){
-            this.showComponents[this.shows[i]] = true
-          }
-      },
-      /* 查询统计配置中的完成率*/
-      getConfigData() {
-        repostCurd('sql', getConfig()).then(response => {
-          this.config = response.variables.data //结果一定存在第0个,因为只有一条数据
-          this.getJiaoYanObjData(this.endDate)
-
-        })
-      },
-      getJiaoYanObjData(end) {
-        repostCurd('sql', getJiaoYanObj(end)).then(response => {
-          this.jiaoyanObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-          // console.log(end,this.jiaoyanObj,"nmnakak")
-          this.gethechaObjData(this.endDate)
-        })
-      },
-      gethechaObjData(end) {
-        repostCurd('sql', gethechaObj(end)).then(response => {
-          this.hechaObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-          this.getnengliObjData(this.endDate)
-        })
-      },
-      getnengliObjData(end) {
-        repostCurd('sql', getnengliObj(end)).then(response => {
-          this.nengliObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-          this.getbiaozhunObjData(this.endDate)
-        })
-      },
-      getbiaozhunObjData(end) {
-        repostCurd('sql', getbiaozhunObj(end)).then(response => {
-          this.biaozhunObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-          // console.log(this.biaozhunObj,'8888')
-          repostCurd('sql', getbiaozhunTObj(end)).then(response => {
-            this.biaozhunTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-            // console.log(this.biaozhunTObj,'8888')
-            this.getbzJunZhuObjData(this.endDate)
-          })
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-        })
-      },
-      getbzJunZhuObjData(end) {
-        repostCurd('sql', getbzJunZhuObj(end)).then(response => {
-          this.bzJunZhuObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-          // console.log(this.biaozhunObj,'8888')
-          repostCurd('sql', getbzJunZhuTObj(end)).then(response => {
-            this.bzJunZhuTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-            // console.log(this.biaozhunTObj,'8888')
-            this.getbzXiBaoObjData(this.endDate)
-          })
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-        })
-      },
-      getbzXiBaoObjData(end) {
-        repostCurd('sql', getbzXiBaoObj(end)).then(response => {
-          this.bzXiBaoObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-          // console.log(this.biaozhunObj,'8888')
-          repostCurd('sql', getbzXiBaoTObj(end)).then(response => {
-            this.bzXiBaoTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
-            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-            // console.log(this.biaozhunTObj,'8888')
-            this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-          })
-          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
-        })
-      },
-      /* 通过拼接的sql进行查询全部数据*/
-      getData(beg, end, of, scope) {
-        // console.log(2222,DBData(beg, end, scope))
-        repostCurd('sql', DBData(beg, end, scope)).then(response => {
-          if(typeof response.variables.data[0] === "undefined"){
-            this.relData = [0] //结果一定存在第0个,因为只有一条数据
-
-          }else{
-            this.relData = response.variables.data[0] //结果一定存在第0个,因为只有一条数据
-
-          }
-          this.relOf = of
-          // console.log(beg, end, of, response,this.relData,'getdata')
-        })
-      },
-      /* 查询全部*/
-      selectAll() {
-        /* 上次查询时间不等于当次查询时间,    开始时间不能等于结束时间, 则开始查询。*/
-        if (this.selectEnd != this.endDate) {
-        // if ((this.selectEnd != this.endDate || this.selectBeg != this.BeginDate) && this.endDate != this.BeginDate && this.endDate > this.BeginDate) {
-          // this.getData(this.BeginDate, this.endDate, false, this.dataScope)
-          this.getConfigData()
-          // this.$forceUpdate();
-
-          // this.selectEnd = this.endDate
-          // this.selectBeg = this.BeginDate
-          /* 延迟刷新*/
-
-          this.relOf = true;
-          this.timer = setTimeout(() => {
-            this.relOf = false
-            clearTimeout(this.timer)
-          }, 0)
-          
-          // this.timer = setInterval(() => {
-          //   if (!this.relOf) {
-          //     this.relOf = true
-          //     clearInterval(this.timer)
-          //   }
-          // }, 100);
-        } 
-        // else if (this.endDate == this.BeginDate) {
-        //   this.$message({
-        //     showClose: true,
-        //     message: '年份相等无法进行查询对比',
-        //     type: 'warning'
-        //   });
-        // } else if(this.endDate < this.BeginDate){
-        //   this.$message({
-        //     showClose: true,
-        //     message: '结束时间不得小于开始时间',
-        //     type: 'warning'
-        //   });
-        // }
-      },
-      /* 年份不得大于当前年份*/
-      checkYear(year, data) {
-        // let that = this
-        // that.dataScope.length = 0
-        // if(that.BeginDate != '' && that.endDate != ''){
-        //   let poor = Number(that.endDate) - Number(that.BeginDate)
-        //   for (let i = 0; i <= poor; i++) {
-        //     let element = Number(that.BeginDate) + i;
-        //     that.dataScope.push(element+'')
-        //   }
-        // }
-        if (Number(year) > Number(this.getDate(0))) {
-          // console.log(data,'3y87sdvfsdf')
-          data == 'end' ?
-            this.endDate = this.getDate(0) + '' :
-            this.BeginDate = this.getDate(0) + ''
-
-          this.$message({
-            showClose: true,
-            message: '年份不得大于当前年份',
-            type: 'warning'
-          });
-          this.selectAll()
-        }
-        // else(
-        //   this.endDate = Number(year)
-        // )
-        //   this.$forceUpdate();
-
-      },
-      /* 获取当前年份*/
-      getDate(year) {
-        year = year || 0
-        let nowDate = new Date();
-        return nowDate.getFullYear() - year;
-      },
-      // allView(){
-      //   screenfull.request() //默认显示全屏
-      // },
-      goBack(){
-        this.$router.back(-1)
-      }
-    },
-    created() {
-      //时间
-      // this.currentTime()
-      if(screenfull.isEnabled && !screenfull.isFullscreen){
-      this.allView()
-        
-      }
-    },
-    beforeDestroy() {
-      if(screenfull.isFullscreen){
-        screenfull.toggle()
-        }
-    }
-  }
-</script>
-<style lang="scss">
-  .statistics {
-    .editDate{
-      overflow: hidden;
-      background-color:rgb(249, 255, 255);
-      position: relative;
-
-    }
-    .block{
-      float: left;
-      font-size: 14px;
-     }
-  }
-  #dv-full-screen-container {
-    // background-image: url('./img/stars.png');
-    // background-size: 100% 100%;
-    // box-shadow: 0 0 3px blue;bete
-    // display: flex;
-    // flex-direction: column;
-    background-color: #f9ffff;
-    display: flex;
-    flex-direction:column;
-    align-items: stretch;
-    
-  //  .headerContent{
-  //   flex: 1;
-    
-  //   // background-color: rgb(99, 12, 41);
-    
-
-  //  }
-  }
-  .goBackButton{
-    width: 2%;
-    position: absolute;
-    right: 0;
-  }
-  #dv-border-box-8{
-    border: none;
-  }
-  .stitle{
-    text-align: center;
-    font-size: 150%;
-    // font-family: PingFangSC-Semibold, sans-serif;
-    font-weight: 600;
-    margin: 0;
-  }
-  .ttitle{
-    font-size: 120%;
-    font-weight: 600;
-    margin: 1% 0;
-  }
-  .screen{
-    height: 100%;
-  }
-  .clear{ clear: both; }
-</style>
-<style lang="scss">
-.el-year-table .today .cell {
-  color: #606266 !important;
-  font-weight: 100 !important;
-}
- 
-</style>