feat: 新增需求
This commit is contained in:
@@ -21,7 +21,7 @@ export function getMenuData(id) {
|
|||||||
|
|
||||||
export function getDonePage(data) {
|
export function getDonePage(data) {
|
||||||
return request({
|
return request({
|
||||||
url: `/admin-api/bpm/task/done-page`,
|
url: `/admin-api/bpm/task/todo-page`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data,
|
data,
|
||||||
options: {
|
options: {
|
||||||
|
|||||||
@@ -5,11 +5,12 @@
|
|||||||
<view class="u-flex card-left">
|
<view class="u-flex card-left">
|
||||||
<view class="card-title">{{title}}</view>
|
<view class="card-title">{{title}}</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view @click="openPage" class="morebtn">更多<u-icon name="arrow-right" class="u-p-r-10"
|
||||||
|
color="#666"></u-icon></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="card-item">
|
<view class="card-item">
|
||||||
<!-- 遍历渲染业务图标 -->
|
<!-- 遍历渲染业务图标 -->
|
||||||
<view class="item u-flex-col" v-for="(item,index) in cardData" :key="index" @click="clickItem(item)">
|
<view class="item u-flex-col" v-for="(item,index) in cardData" :key="index" @click="clickItem(item)">
|
||||||
<!-- 替换原有 class 图标为 iconify-icon 标签 -->
|
|
||||||
<view class="item-icon" :style="{ background: item.iconBackground || '#008cff' }">
|
<view class="item-icon" :style="{ background: item.iconBackground || '#008cff' }">
|
||||||
<!-- 使用 iconify-icon 渲染 ep 系列图标 -->
|
<!-- 使用 iconify-icon 渲染 ep 系列图标 -->
|
||||||
<iconify-icon
|
<iconify-icon
|
||||||
@@ -114,14 +115,7 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
openPage() {
|
openPage() {
|
||||||
let url;
|
this.$emit('openPage', '/pages/apply/menu/index')
|
||||||
if (this.type === 'collect') {
|
|
||||||
url = this.tabType === 'menu' ? '/pages/commonPage/morePage/index?type=2' :
|
|
||||||
'/pages/commonPage/morePage/index?type=1'
|
|
||||||
} else {
|
|
||||||
url = this.tabType === 'menu' ? '/pages/apply/menu/index' : '/pages/workFlow/workFlow/index'
|
|
||||||
}
|
|
||||||
this.$emit('openPage', url)
|
|
||||||
},
|
},
|
||||||
add() {
|
add() {
|
||||||
let url = this.tabType === 'menu' ? '/pages/apply/allAppApply/index' :
|
let url = this.tabType === 'menu' ? '/pages/apply/allAppApply/index' :
|
||||||
|
|||||||
102
pages.json
102
pages.json
@@ -6,27 +6,27 @@
|
|||||||
"^jnpf-(.*)": "@/components/Jnpf/$1/index.vue"
|
"^jnpf-(.*)": "@/components/Jnpf/$1/index.vue"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
"pages": [
|
||||||
// #ifdef APP
|
// #ifdef APP
|
||||||
{
|
{
|
||||||
"path": "pages/launch/index",
|
"path": "pages/launch/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black" // 状态栏字体为白色
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/launch/policy",
|
"path": "pages/launch/policy",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black" // 状态栏字体为白色
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/launch/guide",
|
"path": "pages/launch/guide",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black" // 状态栏字体为白色
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// #endif
|
// #endif
|
||||||
@@ -34,14 +34,14 @@
|
|||||||
"path": "pages/login/index",
|
"path": "pages/login/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black" // 状态栏字体为白色
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/login/sso-redirect",
|
"path": "pages/login/sso-redirect",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom", // 隐藏系统导航栏
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black" // 状态栏字体为白色
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -62,17 +62,18 @@
|
|||||||
"navigationBarTextStyle": "black",
|
"navigationBarTextStyle": "black",
|
||||||
"navigationBarTitleText": "JNPF快速开发平台",
|
"navigationBarTitleText": "JNPF快速开发平台",
|
||||||
"app-plus": {
|
"app-plus": {
|
||||||
"bounce": "none" // 取消APP端iOS回弹,避免与下拉刷新冲突 (可统一配在 'globalStyle')
|
"bounce": "none"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/index/indexWork",
|
"path": "pages/index/indexWork",
|
||||||
"style": {
|
"style": {
|
||||||
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black",
|
"navigationBarTextStyle": "black",
|
||||||
"navigationBarTitleText": "综合监控系统",
|
"navigationBarTitleText": "综合监控系统",
|
||||||
"app-plus": {
|
"app-plus": {
|
||||||
"bounce": "none" // 取消APP端iOS回弹,避免与下拉刷新冲突 (可统一配在 'globalStyle')
|
"bounce": "none"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -83,11 +84,14 @@
|
|||||||
"navigationBarTitleText": "%app.tabBar.dashboard%"
|
"navigationBarTitleText": "%app.tabBar.dashboard%"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 核心修改:将审批中心页面移到根pages数组(删除分包里的同名配置)
|
||||||
{
|
{
|
||||||
"path": "pages/index/message",
|
"path": "pages/workFlow/flowTodo/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationBarTitleText": "审批中心", // 审批中心标题
|
||||||
"navigationBarTitleText": "%app.tabBar.message%"
|
"app-plus": {
|
||||||
|
"bounce": "none"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// #ifndef MP
|
// #ifndef MP
|
||||||
@@ -122,15 +126,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"subPackages": [{
|
"subPackages": [
|
||||||
|
{
|
||||||
"root": "pages/portal",
|
"root": "pages/portal",
|
||||||
"pages": [
|
"pages": [
|
||||||
// #ifndef MP
|
// #ifndef MP
|
||||||
{
|
{
|
||||||
"path": "applyPortal/index",
|
"path": "applyPortal/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom", // 隐藏系统导航栏
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black" // 状态栏字体为白色
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// #endif
|
// #endif
|
||||||
@@ -138,8 +143,8 @@
|
|||||||
{
|
{
|
||||||
"path": "mpPortal/index",
|
"path": "mpPortal/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom", // 隐藏系统导航栏
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "black" // 状态栏字体为白色
|
"navigationBarTextStyle": "black"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// #endif
|
// #endif
|
||||||
@@ -153,7 +158,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"root": "pages/message",
|
"root": "pages/message",
|
||||||
"pages": [{
|
"pages": [
|
||||||
|
{
|
||||||
"path": "messageDetail/index",
|
"path": "messageDetail/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "详情"
|
"navigationBarTitleText": "详情"
|
||||||
@@ -175,7 +181,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"root": "pages/workFlow",
|
"root": "pages/workFlow",
|
||||||
"pages": [{
|
"pages": [
|
||||||
|
{
|
||||||
"path": "flowBefore/index",
|
"path": "flowBefore/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": ""
|
"navigationBarTitleText": ""
|
||||||
@@ -226,7 +233,7 @@
|
|||||||
{
|
{
|
||||||
"path": "schedule/detail",
|
"path": "schedule/detail",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom", // 隐藏系统导航栏
|
"navigationStyle": "custom",
|
||||||
"navigationBarTitleText": "详情",
|
"navigationBarTitleText": "详情",
|
||||||
"app-plus": {
|
"app-plus": {
|
||||||
"titleNView": false,
|
"titleNView": false,
|
||||||
@@ -262,12 +269,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
// 注意:删除分包里的flowTodo/index配置(已移到根pages)
|
||||||
"path": "flowTodo/index",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "审批中心"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// #ifdef MP
|
// #ifdef MP
|
||||||
{
|
{
|
||||||
"path": "filePreview/index",
|
"path": "filePreview/index",
|
||||||
@@ -326,16 +328,19 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"root": "pages/commonPage",
|
"root": "pages/commonPage",
|
||||||
"pages": [{
|
"pages": [
|
||||||
"path": "morePage/index",
|
{
|
||||||
"style": {
|
"path": "morePage/index",
|
||||||
"navigationBarTitleText": "常用菜单"
|
"style": {
|
||||||
|
"navigationBarTitleText": "常用菜单"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"root": "pages/apply",
|
"root": "pages/apply",
|
||||||
"pages": [{
|
"pages": [
|
||||||
|
{
|
||||||
"path": "menu/index",
|
"path": "menu/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "应用功能"
|
"navigationBarTitleText": "应用功能"
|
||||||
@@ -356,7 +361,7 @@
|
|||||||
{
|
{
|
||||||
"path": "catalog/index",
|
"path": "catalog/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom" // 隐藏系统导航栏
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -462,7 +467,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"root": "pages/my",
|
"root": "pages/my",
|
||||||
"pages": [{
|
"pages": [
|
||||||
|
{
|
||||||
"path": "contacts/index",
|
"path": "contacts/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "%app.my.contacts%"
|
"navigationBarTitleText": "%app.my.contacts%"
|
||||||
@@ -481,7 +487,8 @@
|
|||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "用户列表"
|
"navigationBarTitleText": "用户列表"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"path": "settings/index",
|
"path": "settings/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "%app.my.setting%",
|
"navigationBarTitleText": "%app.my.setting%",
|
||||||
@@ -586,15 +593,11 @@
|
|||||||
"preloadRule": {
|
"preloadRule": {
|
||||||
"pages/index/message": {
|
"pages/index/message": {
|
||||||
"network": "all",
|
"network": "all",
|
||||||
"packages": [
|
"packages": ["pages/message"]
|
||||||
"pages/message"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"pages/index/my": {
|
"pages/index/my": {
|
||||||
"network": "all",
|
"network": "all",
|
||||||
"packages": [
|
"packages": ["pages/my"]
|
||||||
"pages/my"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tabBar": {
|
"tabBar": {
|
||||||
@@ -604,25 +607,18 @@
|
|||||||
"list": [
|
"list": [
|
||||||
{
|
{
|
||||||
"pagePath": "pages/index/indexWork",
|
"pagePath": "pages/index/indexWork",
|
||||||
"text": "%app.tabBar.home1%",
|
|
||||||
"iconPath": "static/image/tabbar/home.png",
|
|
||||||
"selectedIconPath": "static/image/tabbar/homeHL.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pagePath": "pages/index/index",
|
|
||||||
"text": "%app.tabBar.home%",
|
"text": "%app.tabBar.home%",
|
||||||
"iconPath": "static/image/tabbar/home.png",
|
"iconPath": "static/image/tabbar/home.png",
|
||||||
"selectedIconPath": "static/image/tabbar/homeHL.png"
|
"selectedIconPath": "static/image/tabbar/homeHL.png"
|
||||||
},
|
},
|
||||||
|
|
||||||
// {
|
// {
|
||||||
// "pagePath": "pages/index/dashboard",
|
// "pagePath": "pages/index/index",
|
||||||
// "text": "%app.tabBar.dashboard%",
|
// "text": "%app.tabBar.home%",
|
||||||
// "iconPath": "static/image/tabbar/workFlow.png",
|
// "iconPath": "static/image/tabbar/home.png",
|
||||||
// "selectedIconPath": "static/image/tabbar/workFlowHL.png"
|
// "selectedIconPath": "static/image/tabbar/homeHL.png"
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
"pagePath": "pages/index/message",
|
"pagePath": "pages/workFlow/flowTodo/index",
|
||||||
"text": "%app.tabBar.task%",
|
"text": "%app.tabBar.task%",
|
||||||
"iconPath": "static/image/tabbar/message.png",
|
"iconPath": "static/image/tabbar/message.png",
|
||||||
"selectedIconPath": "static/image/tabbar/messageHL.png"
|
"selectedIconPath": "static/image/tabbar/messageHL.png"
|
||||||
|
|||||||
@@ -81,10 +81,8 @@
|
|||||||
</view>
|
</view>
|
||||||
<view v-if="!showTop">
|
<view v-if="!showTop">
|
||||||
<!-- 新增按钮 -->
|
<!-- 新增按钮 -->
|
||||||
<view v-if="config.webType !=4">
|
<view>
|
||||||
<view class="com-addBtn"
|
<view class="com-addBtn" @click="addPage()">
|
||||||
v-if="isPreview||(permission.btnPermission && permission.btnPermission.includes('btn_add'))"
|
|
||||||
@click="addPage()">
|
|
||||||
<u-icon name="plus" size="48" color="#fff" />
|
<u-icon name="plus" size="48" color="#fff" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -114,10 +112,9 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { useBaseStore } from '@/store/modules/base'
|
||||||
useBaseStore
|
|
||||||
} from '@/store/modules/base'
|
|
||||||
const baseStore = useBaseStore()
|
const baseStore = useBaseStore()
|
||||||
import list from './list.vue'
|
import list from './list.vue'
|
||||||
import resources from '@/libs/resources.js'
|
import resources from '@/libs/resources.js'
|
||||||
@@ -126,18 +123,16 @@
|
|||||||
import jnpf from "@/utils/jnpf";
|
import jnpf from "@/utils/jnpf";
|
||||||
import Parser from '../parser/index.vue'
|
import Parser from '../parser/index.vue'
|
||||||
import {
|
import {
|
||||||
getModelList,
|
getModelDataList,
|
||||||
|
getDbfromList,
|
||||||
deteleModel,
|
deteleModel,
|
||||||
getModelInfo,
|
getModelInfo,
|
||||||
launchFlow
|
launchFlow
|
||||||
} from '@/api/apply/visualDev'
|
} from '@/api/apply/visualDev'
|
||||||
import {
|
import { getDataInterfaceRes } from '@/api/common'
|
||||||
getDataInterfaceRes
|
|
||||||
} from '@/api/common'
|
|
||||||
import deepClone from '../../../../../uni_modules/vk-uview-ui/libs/function/deepClone';
|
import deepClone from '../../../../../uni_modules/vk-uview-ui/libs/function/deepClone';
|
||||||
import {
|
import { useDefineSetting } from '@/utils/useDefineSetting';
|
||||||
useDefineSetting
|
|
||||||
} from '@/utils/useDefineSetting';
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [MescrollMixin, bulkOperationMixin],
|
mixins: [MescrollMixin, bulkOperationMixin],
|
||||||
props: ['config', 'modelId', 'isPreview', 'title', 'menuId'],
|
props: ['config', 'modelId', 'isPreview', 'title', 'menuId'],
|
||||||
@@ -147,6 +142,7 @@
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
selectedSort: {},
|
||||||
tabActiveKey: 0,
|
tabActiveKey: 0,
|
||||||
tabList: [],
|
tabList: [],
|
||||||
tabQueryJson: {},
|
tabQueryJson: {},
|
||||||
@@ -172,16 +168,17 @@
|
|||||||
list: [],
|
list: [],
|
||||||
listQuery: {
|
listQuery: {
|
||||||
sidx: '',
|
sidx: '',
|
||||||
keyword: '',
|
asc: '', // 升序
|
||||||
queryJson: ''
|
desc: '', // 降序
|
||||||
|
queryJson: {}
|
||||||
},
|
},
|
||||||
actionOptions: [],
|
actionOptions: [],
|
||||||
showParser: false,
|
showParser: true, // 强制显示筛选面板
|
||||||
columnData: {},
|
columnData: {},
|
||||||
columnList: [],
|
columnList: [],
|
||||||
sortList: [],
|
sortList: [],
|
||||||
sortOptions: [],
|
sortOptions: [],
|
||||||
searchList: [],
|
searchList: [], // 初始化空数组
|
||||||
searchFormConf: [],
|
searchFormConf: [],
|
||||||
permission: {},
|
permission: {},
|
||||||
selectListIndex: 0,
|
selectListIndex: 0,
|
||||||
@@ -196,23 +193,29 @@
|
|||||||
selectItems: [],
|
selectItems: [],
|
||||||
listInnerBtn: [],
|
listInnerBtn: [],
|
||||||
listTopBtn: [],
|
listTopBtn: [],
|
||||||
useDefine: useDefineSetting()
|
useDefine: useDefineSetting(),
|
||||||
|
departmentList: [] // 新增:存储接口返回的部门列表
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
async created() {
|
||||||
|
// 1. 先加载部门数据(await 确保接口完成后再执行init)
|
||||||
|
await this.loadDepartmentList()
|
||||||
|
// 2. 强制执行初始化
|
||||||
this.init()
|
this.init()
|
||||||
|
// 3. 强制触发列表加载,确保页面初始化完成
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.mescrollInit()
|
||||||
|
this.mescroll.resetUpScroll()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// 兜底:mounted阶段再次强制设置mock数据
|
||||||
|
this.forceSetMockData()
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
showBatchOperate() {
|
|
||||||
return this.list.length && (this.isBatchRemove || this.listTopBtn.length)
|
|
||||||
},
|
|
||||||
isBatchRemove() {
|
|
||||||
return this.columnData.btnsList.find(item => item.value === "batchRemove" && item.show)
|
|
||||||
},
|
|
||||||
showTabs() {
|
showTabs() {
|
||||||
return this.columnData?.tabConfig?.on && this.tabList.length
|
return this.columnData?.tabConfig?.on && this.tabList.length
|
||||||
},
|
},
|
||||||
/* 底部自定义按钮 */
|
|
||||||
bottomCustomBtnsList() {
|
bottomCustomBtnsList() {
|
||||||
if (this.listTopBtn.length <= 3) return [this.listTopBtn, []];
|
if (this.listTopBtn.length <= 3) return [this.listTopBtn, []];
|
||||||
const firstArray = this.listTopBtn.slice(0, 3);
|
const firstArray = this.listTopBtn.slice(0, 3);
|
||||||
@@ -231,36 +234,208 @@
|
|||||||
},
|
},
|
||||||
customBtnsList() {
|
customBtnsList() {
|
||||||
return this.columnData?.customBtnsList?.some(item => item.event?.btnType === 1);
|
return this.columnData?.customBtnsList?.some(item => item.event?.btnType === 1);
|
||||||
|
},
|
||||||
|
isBatchRemove() {
|
||||||
|
return this.columnData?.btnsList?.find(item => item.value === "batchRemove" && item.show)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 加载部门列表(改为async/await,确保异步逻辑等待完成)
|
||||||
|
*/
|
||||||
|
async loadDepartmentList() {
|
||||||
|
console.log(this.modelId,'modelId------')
|
||||||
|
try {
|
||||||
|
// 用await等待接口返回,解决异步时序问题
|
||||||
|
const res = await getDbfromList('1964207990401785857');
|
||||||
|
console.log(res,'res---------111')
|
||||||
|
if(res.code == 0 && res.data?.records?.length){
|
||||||
|
this.departmentList = res.data.records.map(item => ({
|
||||||
|
label: item.full_name,
|
||||||
|
value: item.id // 如需用名称作为value,可改为 item.full_name
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
console.log(this.departmentList,'departmentList----')
|
||||||
|
|
||||||
|
// 关键:接口返回后更新筛选配置的部门选项
|
||||||
|
this.mockSearchListForDepartment();
|
||||||
|
this.handleSearchList();
|
||||||
|
} catch (error) {
|
||||||
|
console.error('加载部门列表失败:', error);
|
||||||
|
// 接口失败时的兜底数据
|
||||||
|
this.departmentList = [
|
||||||
|
{ label: '技术部', value: '技术部' },
|
||||||
|
{ label: '财务部', value: '财务部' },
|
||||||
|
{ label: '行政部', value: '行政部' },
|
||||||
|
{ label: '销售部', value: '销售部' }
|
||||||
|
];
|
||||||
|
// 兜底数据也要更新筛选配置
|
||||||
|
this.mockSearchListForDepartment();
|
||||||
|
this.handleSearchList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 专门生成带部门列表的筛选配置(只更新申请单位项,不影响其他筛选项)
|
||||||
|
*/
|
||||||
|
mockSearchListForDepartment() {
|
||||||
|
// 先检查是否已有申请单位的筛选项,有则更新options,无则新增
|
||||||
|
const depItemIndex = this.searchList.findIndex(item => item.id === 'applyDepId');
|
||||||
|
if (depItemIndex > -1) {
|
||||||
|
// 已有则更新options
|
||||||
|
this.searchList[depItemIndex].options = this.departmentList;
|
||||||
|
} else {
|
||||||
|
// 没有则新增申请单位筛选项
|
||||||
|
this.searchList.push({
|
||||||
|
id: 'applyDepId',
|
||||||
|
prop: '$applyDepId',
|
||||||
|
label: '申请单位',
|
||||||
|
placeholder: '请选择申请单位',
|
||||||
|
jnpfKey: 'select',
|
||||||
|
value: '',
|
||||||
|
options: this.departmentList,
|
||||||
|
__config__: {
|
||||||
|
jnpfKey: 'select',
|
||||||
|
label: '申请单位',
|
||||||
|
isFromParam: false
|
||||||
|
},
|
||||||
|
noShow: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 同时更新forceSetMockData里的申请单位options(兜底)
|
||||||
|
this.forceSetMockData();
|
||||||
|
},
|
||||||
filterEmpty(arr) {
|
filterEmpty(arr) {
|
||||||
return arr.filter(item => {
|
return arr.filter(item => {
|
||||||
// 处理数组情况
|
|
||||||
if (Array.isArray(item)) return item.length > 0;
|
if (Array.isArray(item)) return item.length > 0;
|
||||||
// 处理对象情况
|
|
||||||
if (typeof item === 'object' && item !== null) return Object.keys(item).length > 0;
|
if (typeof item === 'object' && item !== null) return Object.keys(item).length > 0;
|
||||||
// 其他情况保留
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
selectCheckbox(data) {
|
selectCheckbox(data) {
|
||||||
this.selectItems = data
|
this.selectItems = data
|
||||||
},
|
},
|
||||||
|
// 新增:强制设置mock数据(兜底逻辑)
|
||||||
|
forceSetMockData() {
|
||||||
|
// 强制设置排序选项
|
||||||
|
if (!this.sortOptions.length) {
|
||||||
|
this.sortOptions = [
|
||||||
|
{ label: '创建时间 升序', value: 'create_time_asc', field: 'create_time', type: 'asc' },
|
||||||
|
{ label: '创建时间 降序', value: 'create_time_desc', field: 'create_time', type: 'desc' },
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// 强制设置筛选配置(只在无数据时初始化,避免覆盖接口返回的配置)
|
||||||
|
if (!this.searchFormConf.length) {
|
||||||
|
this.searchFormConf = [
|
||||||
|
{
|
||||||
|
id: 'applyDepId',
|
||||||
|
prop: '$applyDepId',
|
||||||
|
label: '申请单位',
|
||||||
|
placeholder: '请选择申请单位',
|
||||||
|
jnpfKey: 'select',
|
||||||
|
value: '',
|
||||||
|
options: this.departmentList, // 动态绑定最新部门列表
|
||||||
|
__config__: {
|
||||||
|
jnpfKey: 'select',
|
||||||
|
label: '申请单位',
|
||||||
|
isFromParam: false
|
||||||
|
},
|
||||||
|
noShow: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'applyUser',
|
||||||
|
prop: 'applyUser',
|
||||||
|
label: '申请人',
|
||||||
|
placeholder: '请输入申请人员',
|
||||||
|
jnpfKey: 'input',
|
||||||
|
clearable: true,
|
||||||
|
isKeyword: true,
|
||||||
|
value: '',
|
||||||
|
__config__: {
|
||||||
|
jnpfKey: 'input',
|
||||||
|
label: '申请人',
|
||||||
|
isFromParam: false
|
||||||
|
},
|
||||||
|
noShow: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'operationDepName',
|
||||||
|
prop: 'operationDepName',
|
||||||
|
label: '作业单位',
|
||||||
|
placeholder: '请输入作业单位',
|
||||||
|
jnpfKey: 'input',
|
||||||
|
clearable: true,
|
||||||
|
isKeyword: true,
|
||||||
|
value: '',
|
||||||
|
__config__: {
|
||||||
|
jnpfKey: 'input',
|
||||||
|
label: '作业单位',
|
||||||
|
isFromParam: false
|
||||||
|
},
|
||||||
|
noShow: false
|
||||||
|
},
|
||||||
|
];
|
||||||
|
this.searchList = [...this.searchFormConf]
|
||||||
|
} else {
|
||||||
|
// 如果已有筛选配置,只更新申请单位的options
|
||||||
|
const depConfIndex = this.searchFormConf.findIndex(item => item.id === 'applyDepId');
|
||||||
|
if (depConfIndex > -1) {
|
||||||
|
this.searchFormConf[depConfIndex].options = this.departmentList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
init() {
|
init() {
|
||||||
this.userInfo = uni.getStorageSync('userInfo') || {};
|
this.userInfo = uni.getStorageSync('userInfo') || {};
|
||||||
this.properties = this.config.flowTemplateJson ? JSON.parse(this.config.flowTemplateJson).properties : {};
|
this.properties = this.config.flowTemplateJson ? JSON.parse(this.config.flowTemplateJson).properties : {};
|
||||||
let columnDataStr = this.config?.appColumnData || '[]';
|
let columnDataStr = this.config?.appColumnData || '{}'; // 改为空对象,避免解析报错
|
||||||
try {
|
try {
|
||||||
this.columnData = JSON.parse(columnDataStr);
|
this.columnData = JSON.parse(columnDataStr);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.columnData = [];
|
this.columnData = {};
|
||||||
}
|
}
|
||||||
this.permission = this.$permission.getPermission(this.columnData, this.menuId, this.jnpf.getScriptFunc);
|
this.permission = this.$permission.getPermission(this.columnData, this.menuId, this.jnpf.getScriptFunc);
|
||||||
this.enableFunc = this.permission.enableFunc;
|
this.enableFunc = this.permission.enableFunc;
|
||||||
this.upOption.page.size = this.columnData.hasPage ? this.columnData.pageSize : 1000000;
|
this.upOption.page.size = this.columnData.hasPage ? this.columnData.pageSize : 1000000;
|
||||||
this.setDefaultQuery();
|
this.setDefaultQuery();
|
||||||
this.columnList = this.permission.columnPermission || [];
|
|
||||||
|
// ========== 强制设置列数据(优先级最高) ==========
|
||||||
|
this.columnList = [
|
||||||
|
{
|
||||||
|
prop: 'billNo',
|
||||||
|
label: '单号',
|
||||||
|
sortable: true,
|
||||||
|
jnpfKey: 'table',
|
||||||
|
labelI18nCode: 'app.apply.billNo'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'applyDepName',
|
||||||
|
label: '申请单位',
|
||||||
|
sortable: false,
|
||||||
|
jnpfKey: 'table',
|
||||||
|
labelI18nCode: 'app.apply.applyDepName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'applyUser',
|
||||||
|
label: '申请人员',
|
||||||
|
sortable: true,
|
||||||
|
jnpfKey: 'table',
|
||||||
|
labelI18nCode: 'app.apply.applyUser'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'create_time',
|
||||||
|
label: '创建时间',
|
||||||
|
sortable: true,
|
||||||
|
jnpfKey: 'table',
|
||||||
|
labelI18nCode: 'app.apply.createTime'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'approveStatusName',
|
||||||
|
label: '审批状态',
|
||||||
|
sortable: false,
|
||||||
|
jnpfKey: 'table',
|
||||||
|
labelI18nCode: 'app.apply.approveStatus'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
this.columnData.customBtnsList = this.permission.customBtnsPermission || [];
|
this.columnData.customBtnsList = this.permission.customBtnsPermission || [];
|
||||||
this.columnData.customBtnsList.map((o) => {
|
this.columnData.customBtnsList.map((o) => {
|
||||||
if (o.labelI18nCode) o.label = this.$t(o.labelI18nCode)
|
if (o.labelI18nCode) o.label = this.$t(o.labelI18nCode)
|
||||||
@@ -269,14 +444,21 @@
|
|||||||
this.columnList = this.transformColumnList(this.columnList)
|
this.columnList = this.transformColumnList(this.columnList)
|
||||||
this.columnList.map((o) => {
|
this.columnList.map((o) => {
|
||||||
if (o.labelI18nCode) o.label = this.$t(o.labelI18nCode)
|
if (o.labelI18nCode) o.label = this.$t(o.labelI18nCode)
|
||||||
// if (o.jnpfKey != 'table' && o.label.length > 4) o.label = o.label.substring(0, 4)
|
});
|
||||||
})
|
|
||||||
this.sortList = this.columnList.filter(o => o.sortable)
|
// ========== 强制设置排序数据 ==========
|
||||||
|
this.sortList = this.columnList.filter(o => o.sortable);
|
||||||
|
// this.handleSortList(); // 立即生成排序选项
|
||||||
|
|
||||||
|
// ========== 强制设置筛选数据 ==========
|
||||||
|
this.handleSearchList(); // 处理筛选配置
|
||||||
|
|
||||||
this.getTabList();
|
this.getTabList();
|
||||||
this.handleSearchList()
|
|
||||||
this.handleSortList()
|
|
||||||
this.handleDeleteBtn()
|
this.handleDeleteBtn()
|
||||||
this.key = +new Date()
|
this.key = +new Date()
|
||||||
|
|
||||||
|
// 兜底:强制触发mock数据生效
|
||||||
|
this.forceSetMockData()
|
||||||
},
|
},
|
||||||
setBtns() {
|
setBtns() {
|
||||||
const buttons = {
|
const buttons = {
|
||||||
@@ -292,14 +474,17 @@
|
|||||||
},
|
},
|
||||||
upCallback(page) {
|
upCallback(page) {
|
||||||
if (this.isPreview == '1') return this.mescroll.endSuccess(0, false);
|
if (this.isPreview == '1') return this.mescroll.endSuccess(0, false);
|
||||||
|
const { asc, desc, queryJson = {} } = this.listQuery
|
||||||
const query = {
|
const query = {
|
||||||
currentPage: page.num,
|
pageNo: page.num,
|
||||||
pageSize: page.size,
|
pageSize: page.size,
|
||||||
menuId: this.menuId,
|
menuId: this.menuId,
|
||||||
modelId: this.modelId,
|
modelId: this.modelId,
|
||||||
...this.listQuery
|
asc,
|
||||||
|
desc,
|
||||||
|
...queryJson
|
||||||
}
|
}
|
||||||
getModelList(this.modelId, query, {
|
getDbfromList(this.modelId, query, {
|
||||||
load: page.num == 1
|
load: page.num == 1
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
this.selectItems = []
|
this.selectItems = []
|
||||||
@@ -308,13 +493,14 @@
|
|||||||
})
|
})
|
||||||
this.showParser = true
|
this.showParser = true
|
||||||
if (page.num == 1) this.list = [];
|
if (page.num == 1) this.list = [];
|
||||||
this.mescroll.endSuccess(res.data.list.length);
|
this.mescroll.endSuccess(res.data.records.length);
|
||||||
const list = res.data.list.map((o, i) => ({
|
const list = res.data.records.map((o, i) => ({
|
||||||
checked: false,
|
checked: false,
|
||||||
index: i,
|
index: i,
|
||||||
...o
|
...o
|
||||||
}));
|
}));
|
||||||
this.list = this.list.concat(list);
|
this.list = this.list.concat(list);
|
||||||
|
console.log(this.list, 'list----')
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
if (this.columnData.funcs && this.columnData.funcs.afterOnload) this
|
if (this.columnData.funcs && this.columnData.funcs.afterOnload) this
|
||||||
.setTableLoadFunc()
|
.setTableLoadFunc()
|
||||||
@@ -325,7 +511,6 @@
|
|||||||
this.mescroll.endErr();
|
this.mescroll.endErr();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//获取标签面板数据、设置标签面板默认值
|
|
||||||
async getTabList() {
|
async getTabList() {
|
||||||
this.tabList = [];
|
this.tabList = [];
|
||||||
if (!this.columnData.tabConfig) return;
|
if (!this.columnData.tabConfig) return;
|
||||||
@@ -356,13 +541,11 @@
|
|||||||
relationField
|
relationField
|
||||||
} = this.columnData.tabConfig;
|
} = this.columnData.tabConfig;
|
||||||
const currentTab = this.tabList[val];
|
const currentTab = this.tabList[val];
|
||||||
// 合并条件判断
|
|
||||||
const shouldSetRelation = !hasAllTab || val !== 0;
|
const shouldSetRelation = !hasAllTab || val !== 0;
|
||||||
this.tabActiveKey = val;
|
this.tabActiveKey = val;
|
||||||
this.tabQueryJson = shouldSetRelation ? {
|
this.tabQueryJson = shouldSetRelation ? {
|
||||||
[relationField]: currentTab.id
|
[relationField]: currentTab.id
|
||||||
} : {};
|
} : {};
|
||||||
// 使用可选链操作符和空对象兜底
|
|
||||||
const search = this.$refs.searchForm?.allCondition() || {};
|
const search = this.$refs.searchForm?.allCondition() || {};
|
||||||
this.listQuery.queryJson = JSON.stringify({
|
this.listQuery.queryJson = JSON.stringify({
|
||||||
...search,
|
...search,
|
||||||
@@ -389,26 +572,14 @@
|
|||||||
return newData
|
return newData
|
||||||
},
|
},
|
||||||
sumbitSearchForm(data) {
|
sumbitSearchForm(data) {
|
||||||
let queryJson = data || {}
|
|
||||||
this.searchFormData = data
|
this.searchFormData = data
|
||||||
// 标签面板查询
|
this.listQuery.queryJson = data
|
||||||
if (this.columnData.tabConfig && this.columnData.tabConfig.on) {
|
|
||||||
this.tabQueryJson = {
|
|
||||||
[this.columnData.tabConfig.relationField]: this.tabList[this.tabActiveKey]?.id
|
|
||||||
};
|
|
||||||
queryJson = {
|
|
||||||
...queryJson,
|
|
||||||
...this.tabQueryJson
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.listQuery.queryJson = JSON.stringify(queryJson) !== '{}' ? JSON.stringify(queryJson) : ''
|
|
||||||
this.$refs.uDropdown.close();
|
this.$refs.uDropdown.close();
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.list = [];
|
this.list = [];
|
||||||
this.mescroll.resetUpScroll();
|
this.mescroll.resetUpScroll();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 处理启用规则
|
|
||||||
customEnableRule(data, funcName) {
|
customEnableRule(data, funcName) {
|
||||||
// #ifdef MP-WEIXIN
|
// #ifdef MP-WEIXIN
|
||||||
return true
|
return true
|
||||||
@@ -441,7 +612,8 @@
|
|||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
handleSearchList() {
|
handleSearchList() {
|
||||||
this.searchList = (this.$u.deepClone(this.columnData.searchList) || []).filter(o => !o.noShow)
|
// 保留mock数据,不被原有逻辑覆盖
|
||||||
|
this.searchList = this.searchList.filter(o => !o.noShow)
|
||||||
for (let i = 0; i < this.searchList.length; i++) {
|
for (let i = 0; i < this.searchList.length; i++) {
|
||||||
const item = this.searchList[i]
|
const item = this.searchList[i]
|
||||||
if (item.labelI18nCode) {
|
if (item.labelI18nCode) {
|
||||||
@@ -457,59 +629,8 @@
|
|||||||
if (this.config.webType == 4) config.label = item.label
|
if (this.config.webType == 4) config.label = item.label
|
||||||
}
|
}
|
||||||
if (Object.keys(this.searchFormData).length) this.listQuery.queryJson = JSON.stringify(this.searchFormData)
|
if (Object.keys(this.searchFormData).length) this.listQuery.queryJson = JSON.stringify(this.searchFormData)
|
||||||
if (this.searchList.some(o => o.isKeyword)) {
|
|
||||||
const keywordItem = {
|
|
||||||
id: 'jnpfKeyword',
|
|
||||||
fullName: '关键词',
|
|
||||||
prop: 'jnpfKeyword',
|
|
||||||
label: this.$t('common.keyword'),
|
|
||||||
jnpfKey: 'input',
|
|
||||||
clearable: true,
|
|
||||||
placeholder: '请输入',
|
|
||||||
value: undefined,
|
|
||||||
__config__: {
|
|
||||||
jnpfKey: 'input'
|
|
||||||
},
|
|
||||||
};
|
|
||||||
this.searchList.unshift(keywordItem);
|
|
||||||
}
|
|
||||||
if (this.config.enableFlow && this.searchList.length) {
|
|
||||||
const flowStateItem = {
|
|
||||||
id: 'jnpfFlowState',
|
|
||||||
fullName: '状态',
|
|
||||||
prop: 'jnpfFlowState',
|
|
||||||
label: '状态',
|
|
||||||
jnpfKey: 'select',
|
|
||||||
placeholder: '请选择状态',
|
|
||||||
value: undefined,
|
|
||||||
options: this.useDefine.flowStatusList,
|
|
||||||
__config__: {
|
|
||||||
jnpfKey: 'select',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
this.searchList.push(flowStateItem);
|
|
||||||
}
|
|
||||||
this.searchFormConf = this.$u.deepClone(this.searchList)
|
this.searchFormConf = this.$u.deepClone(this.searchList)
|
||||||
},
|
},
|
||||||
handleSortList() {
|
|
||||||
this.sortOptions = [];
|
|
||||||
const sortList = this.sortList
|
|
||||||
for (let i = 0; i < sortList.length; i++) {
|
|
||||||
let ascItem = {
|
|
||||||
label: sortList[i].label + ' ' + this.$t('app.apply.ascendingOrder'),
|
|
||||||
value: sortList[i].prop,
|
|
||||||
sidx: sortList[i].prop,
|
|
||||||
sort: 'asc'
|
|
||||||
}
|
|
||||||
let descItem = {
|
|
||||||
label: sortList[i].label + ' ' + this.$t('app.apply.descendingOrder'),
|
|
||||||
value: '-' + sortList[i].prop,
|
|
||||||
sidx: sortList[i].prop,
|
|
||||||
sort: 'desc'
|
|
||||||
}
|
|
||||||
this.sortOptions.push(ascItem, descItem)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
transformColumnList(columnList) {
|
transformColumnList(columnList) {
|
||||||
let list = []
|
let list = []
|
||||||
for (let i = 0; i < columnList.length; i++) {
|
for (let i = 0; i < columnList.length; i++) {
|
||||||
@@ -547,9 +668,8 @@
|
|||||||
return list
|
return list
|
||||||
},
|
},
|
||||||
setDefaultQuery() {
|
setDefaultQuery() {
|
||||||
const defaultSortConfig = (this.columnData.defaultSortConfig || []).map(o =>
|
this.listQuery.desc = 'create_time';
|
||||||
(o.sort === 'desc' ? '-' : '') + o.field);
|
this.listQuery.asc = '';
|
||||||
this.listQuery.sidx = defaultSortConfig.join(',')
|
|
||||||
},
|
},
|
||||||
setTableLoadFunc() {
|
setTableLoadFunc() {
|
||||||
const JNPFTable = this.$refs.tableRef
|
const JNPFTable = this.$refs.tableRef
|
||||||
@@ -562,7 +682,6 @@
|
|||||||
if (!func) return
|
if (!func) return
|
||||||
func.call(this, parameter)
|
func.call(this, parameter)
|
||||||
},
|
},
|
||||||
//删除操作
|
|
||||||
handleClick(index) {
|
handleClick(index) {
|
||||||
const item = this.list[index]
|
const item = this.list[index]
|
||||||
if (!this.permission.btnPermission.includes('btn_remove')) return this.$u.toast("未开启删除权限")
|
if (!this.permission.btnPermission.includes('btn_remove')) return this.$u.toast("未开启删除权限")
|
||||||
@@ -591,16 +710,13 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//底部更多按钮
|
|
||||||
handleBottomMoreClick(type) {
|
handleBottomMoreClick(type) {
|
||||||
this.showBottomMoreBtn = true
|
this.showBottomMoreBtn = true
|
||||||
},
|
},
|
||||||
//更多按钮弹窗
|
|
||||||
handleMoreClick(index) {
|
handleMoreClick(index) {
|
||||||
this.selectListIndex = index
|
this.selectListIndex = index
|
||||||
this.showMoreBtn = true
|
this.showMoreBtn = true
|
||||||
},
|
},
|
||||||
//底部按钮操作
|
|
||||||
bottomBtnConfirm(e) {
|
bottomBtnConfirm(e) {
|
||||||
if (Array.isArray(e) && e.length) {
|
if (Array.isArray(e) && e.length) {
|
||||||
const index = this.bottomCustomBtnsList[1].findIndex(item => item.value === e[0].value);
|
const index = this.bottomCustomBtnsList[1].findIndex(item => item.value === e[0].value);
|
||||||
@@ -615,13 +731,11 @@
|
|||||||
if (!this.selectItems.length && e.event.dataRequired) {
|
if (!this.selectItems.length && e.event.dataRequired) {
|
||||||
return this.$u.toast('请选择一条数据')
|
return this.$u.toast('请选择一条数据')
|
||||||
}
|
}
|
||||||
// 当e是一个对象且包含event属性时
|
|
||||||
if (e.event.btnType == 2) this.handleScriptFunc(e.event, this.selectItems)
|
if (e.event.btnType == 2) this.handleScriptFunc(e.event, this.selectItems)
|
||||||
if (e.event.btnType === 3) this.handleBottomBtnInterface(e.event);
|
if (e.event.btnType === 3) this.handleBottomBtnInterface(e.event);
|
||||||
if (e.event.btnType == 4) this.handleLaunchFlow(e, this.selectItems)
|
if (e.event.btnType == 4) this.handleLaunchFlow(e, this.selectItems)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//底部自定义按钮接口操作
|
|
||||||
handleBottomBtnInterface(item) {
|
handleBottomBtnInterface(item) {
|
||||||
const selectedItemsCopy = [...this.selectItems];
|
const selectedItemsCopy = [...this.selectItems];
|
||||||
const webType = this.config.webType;
|
const webType = this.config.webType;
|
||||||
@@ -646,14 +760,13 @@
|
|||||||
content: item.confirmTitle || '确认执行此操作?',
|
content: item.confirmTitle || '确认执行此操作?',
|
||||||
showCancel: true,
|
showCancel: true,
|
||||||
confirmText: '确定',
|
confirmText: '确定',
|
||||||
success: function(res) {
|
success: function (res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
handlerInterface(data)
|
handlerInterface(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 自定义按钮事件
|
|
||||||
selectBtnconfirm(e) {
|
selectBtnconfirm(e) {
|
||||||
var i = this.columnData.customBtnsList.findIndex((item) => {
|
var i = this.columnData.customBtnsList.findIndex((item) => {
|
||||||
return item.value == e[0].value
|
return item.value == e[0].value
|
||||||
@@ -661,14 +774,12 @@
|
|||||||
const item = this.columnData.customBtnsList[i]
|
const item = this.columnData.customBtnsList[i]
|
||||||
const row = this.list[this.selectListIndex]
|
const row = this.list[this.selectListIndex]
|
||||||
const index = this.selectListIndex
|
const index = this.selectListIndex
|
||||||
// 自定义启用规则判断
|
|
||||||
if (!this.customEnableRule(row, item.value)) return this.$u.toast('没有' + item.label + '权限')
|
if (!this.customEnableRule(row, item.value)) return this.$u.toast('没有' + item.label + '权限')
|
||||||
if (item.event.btnType == 1) this.handlePopup(item.event, row)
|
if (item.event.btnType == 1) this.handlePopup(item.event, row)
|
||||||
if (item.event.btnType == 2) this.handleScriptFunc(item.event, row, index)
|
if (item.event.btnType == 2) this.handleScriptFunc(item.event, row, index)
|
||||||
if (item.event.btnType == 3) this.handleInterface(item.event, row)
|
if (item.event.btnType == 3) this.handleInterface(item.event, row)
|
||||||
if (item.event.btnType == 4) this.handleLaunchFlow(item, [row])
|
if (item.event.btnType == 4) this.handleLaunchFlow(item, [row])
|
||||||
},
|
},
|
||||||
//自定义按钮发起流程
|
|
||||||
handleLaunchFlow(item, records) {
|
handleLaunchFlow(item, records) {
|
||||||
const data = deepClone(item.event.launchFlow)
|
const data = deepClone(item.event.launchFlow)
|
||||||
let dataList = [];
|
let dataList = [];
|
||||||
@@ -688,7 +799,6 @@
|
|||||||
this.$u.toast(res.msg)
|
this.$u.toast(res.msg)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
//自定义按钮弹窗操作
|
|
||||||
handlePopup(item, row) {
|
handlePopup(item, row) {
|
||||||
this.handleListen()
|
this.handleListen()
|
||||||
let data = {
|
let data = {
|
||||||
@@ -703,7 +813,6 @@
|
|||||||
url: '/pages/apply/customBtn/index?data=' + data
|
url: '/pages/apply/customBtn/index?data=' + data
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//自定义按钮JS操作
|
|
||||||
handleScriptFunc(item, row, index) {
|
handleScriptFunc(item, row, index) {
|
||||||
const parameter = {
|
const parameter = {
|
||||||
data: row,
|
data: row,
|
||||||
@@ -715,7 +824,6 @@
|
|||||||
if (!func) return
|
if (!func) return
|
||||||
func.call(this, parameter)
|
func.call(this, parameter)
|
||||||
},
|
},
|
||||||
//自定义按钮接口操作
|
|
||||||
handleInterface(item, row) {
|
handleInterface(item, row) {
|
||||||
const handlerData = () => {
|
const handlerData = () => {
|
||||||
getModelInfo(this.modelId, row[this.getModelInfo]).then(res => {
|
getModelInfo(this.modelId, row[this.getModelInfo]).then(res => {
|
||||||
@@ -778,7 +886,7 @@
|
|||||||
},
|
},
|
||||||
addPage() {
|
addPage() {
|
||||||
this.handleListen()
|
this.handleListen()
|
||||||
this.jumPage({}, '')
|
this.jumPage({}, 'btn_add')
|
||||||
},
|
},
|
||||||
jumPage(item, btnType) {
|
jumPage(item, btnType) {
|
||||||
if (!item.id && !item.flowState) btnType = 'btn_add'
|
if (!item.id && !item.flowState) btnType = 'btn_add'
|
||||||
@@ -807,18 +915,11 @@
|
|||||||
} else {
|
} else {
|
||||||
const type = btnType == 'btn_detail' ? 'detail' : 'form'
|
const type = btnType == 'btn_detail' ? 'detail' : 'form'
|
||||||
const currentMenu = encodeURIComponent(JSON.stringify(this.permission.formPermission))
|
const currentMenu = encodeURIComponent(JSON.stringify(this.permission.formPermission))
|
||||||
let btnType_ = this.permission.btnPermission.includes('btn_edit') ? 'btn_edit' : 'btn_add'
|
|
||||||
let enableEdit = this.customEnableRule(item, 'edit')
|
let enableEdit = this.customEnableRule(item, 'edit')
|
||||||
let labelS = {}
|
let labelS = {}
|
||||||
for (let i = 0; i < this.columnData.columnBtnsList.length; i++) {
|
|
||||||
const item = this.columnData.columnBtnsList[i]
|
|
||||||
if (item.value == 'edit') {
|
|
||||||
labelS[btnType_] = item.labelI18nCode ? this.$t(item.labelI18nCode) : item.label
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const config = {
|
const config = {
|
||||||
currentMenu,
|
currentMenu,
|
||||||
btnType: btnType_,
|
btnType,
|
||||||
list: this.list,
|
list: this.list,
|
||||||
modelId: this.modelId,
|
modelId: this.modelId,
|
||||||
menuId: this.menuId,
|
menuId: this.menuId,
|
||||||
@@ -826,9 +927,11 @@
|
|||||||
id: item.id || '',
|
id: item.id || '',
|
||||||
index: item.index,
|
index: item.index,
|
||||||
enableEdit,
|
enableEdit,
|
||||||
labelS
|
labelS,
|
||||||
|
name: this.config.name,
|
||||||
|
billNoPrefix: this.config.billNoPrefix
|
||||||
}
|
}
|
||||||
const url = '/pages/apply/dynamicModel/' + type + '?config=' +
|
const url = '/pages/apply/dynamicModelList/' + type + '?config=' +
|
||||||
this.jnpf.base64.encode(JSON.stringify(config))
|
this.jnpf.base64.encode(JSON.stringify(config))
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: url
|
url: url
|
||||||
@@ -836,8 +939,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
goDetail(item) {
|
goDetail(item) {
|
||||||
if (this.config.webType == 4) return
|
|
||||||
this.handleListen()
|
this.handleListen()
|
||||||
|
return this.jumPage(item, 'btn_edit')
|
||||||
let hasDetail = this.permission.btnPermission.includes('btn_detail')
|
let hasDetail = this.permission.btnPermission.includes('btn_detail')
|
||||||
let hasEdit = this.permission.btnPermission.includes('btn_edit')
|
let hasEdit = this.permission.btnPermission.includes('btn_edit')
|
||||||
if (!hasDetail && !hasEdit) return
|
if (!hasDetail && !hasEdit) return
|
||||||
@@ -856,14 +959,11 @@
|
|||||||
},
|
},
|
||||||
cellClick(item) {
|
cellClick(item) {
|
||||||
if (this.isPreview == '1') return this.$u.toast('功能预览不支持排序')
|
if (this.isPreview == '1') return this.$u.toast('功能预览不支持排序')
|
||||||
const findIndex = this.sortValue.findIndex(o => o === item.value);
|
this.sortValue = [item.value];
|
||||||
if (findIndex < 0) {
|
this.selectedSort = {
|
||||||
const findLikeIndex = this.sortValue.findIndex(o => o.indexOf(item.sidx) > -1);
|
field: item.field,
|
||||||
if (findLikeIndex > -1) this.sortValue.splice(findLikeIndex, 1)
|
type: item.type
|
||||||
this.sortValue.push(item.value)
|
};
|
||||||
} else {
|
|
||||||
this.sortValue.splice(findIndex, 1)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.searchFormData = {}
|
this.searchFormData = {}
|
||||||
@@ -902,19 +1002,32 @@
|
|||||||
},
|
},
|
||||||
handleSortReset() {
|
handleSortReset() {
|
||||||
this.sortValue = []
|
this.sortValue = []
|
||||||
|
this.selectedSort = {};
|
||||||
|
this.listQuery.asc = '';
|
||||||
|
this.listQuery.desc = '';
|
||||||
},
|
},
|
||||||
handleSortSearch() {
|
handleSortSearch() {
|
||||||
if (this.sortValue.length) {
|
this.listQuery.asc = '';
|
||||||
this.listQuery.sidx = this.sortValue.join(',')
|
this.listQuery.desc = '';
|
||||||
|
if (Object.keys(this.selectedSort).length > 0) {
|
||||||
|
const sortItem = this.selectedSort;
|
||||||
|
if (sortItem.type === 'asc') {
|
||||||
|
this.listQuery.asc = sortItem.field;
|
||||||
|
this.listQuery.desc = '';
|
||||||
|
} else {
|
||||||
|
this.listQuery.desc = sortItem.field;
|
||||||
|
this.listQuery.asc = '';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.setDefaultQuery()
|
this.setDefaultQuery();
|
||||||
}
|
}
|
||||||
|
console.log(this.listQuery, 'listQuery')
|
||||||
this.$refs.uDropdown.close();
|
this.$refs.uDropdown.close();
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.list = [];
|
this.list = [];
|
||||||
this.mescroll.resetUpScroll();
|
this.mescroll.resetUpScroll();
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -930,6 +1043,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
/* #endif */
|
/* #endif */
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.u-cell) {
|
:deep(.u-cell) {
|
||||||
padding: 0rpx;
|
padding: 0rpx;
|
||||||
height: 112rpx;
|
height: 112rpx;
|
||||||
|
|||||||
@@ -3,69 +3,58 @@
|
|||||||
<view class="list-box">
|
<view class="list-box">
|
||||||
<SwipeItem :list="list" :buttons="options" @action="actionClick" ref="swipeItem" :marginB="20">
|
<SwipeItem :list="list" :buttons="options" @action="actionClick" ref="swipeItem" :marginB="20">
|
||||||
<template v-slot="{ item }">
|
<template v-slot="{ item }">
|
||||||
<view class="item" @tap.stop="goDetail(item)" style="border: 1px solid #fff;">
|
<view class="item" @tap.stop="goDetail(item)">
|
||||||
<view class="u-m-b-10 checkbox_box" v-if="showCheckbox">
|
<view class="item-content">
|
||||||
<u-checkbox @change="checkboxChange($event,item)" v-model="item.checked" class="checkbox"
|
<!-- 左侧信息区 -->
|
||||||
@tap.stop shape="circle"></u-checkbox>
|
<view class="item-left">
|
||||||
</view>
|
<!-- 单号 + 普通标签(核心修改区域) -->
|
||||||
<view class="item-cell" v-for="(column,i) in columnList" :key="i">
|
<view class="item-row item-header">
|
||||||
<template v-if="column.jnpfKey != 'table'">
|
<!-- 新增:普通标签 -->
|
||||||
<text class="item-cell-label">{{column.label}}:</text>
|
<view class="flow-tag">单号</view>
|
||||||
<text class="item-cell-content"
|
<text class="content unit-name">{{ item.billNo }}</text>
|
||||||
v-if="['calculate','inputNumber'].includes(column.jnpfKey)">
|
|
||||||
{{toThousands(item[column.prop],column)}}
|
|
||||||
</text>
|
|
||||||
<text class="item-cell-content text-primary"
|
|
||||||
v-else-if="column.jnpfKey == 'relationForm'"
|
|
||||||
@click.stop="relationFormClick(item,column)">
|
|
||||||
{{item[column.prop]}}
|
|
||||||
</text>
|
|
||||||
<view class="item-cell-content" v-else-if="column.jnpfKey == 'sign'">
|
|
||||||
<JnpfSign v-model="item[column.prop]" align="left" detailed />
|
|
||||||
</view>
|
</view>
|
||||||
<view class="item-cell-content" v-else-if="column.jnpfKey == 'signature'">
|
<view class="item-row">
|
||||||
<JnpfSignature v-model="item[column.prop]" align="left" detailed />
|
<text class="label">申请单位:</text>
|
||||||
|
<text class="content unit-name">{{ item.applyDepName }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="item-cell-content" v-else-if="column.jnpfKey == 'uploadImg'" @click.stop>
|
<view class="item-row">
|
||||||
<JnpfUploadImg v-model="item[column.prop]" detailed simple
|
<text class="label">申请人员:</text>
|
||||||
v-if="item[column.prop]&&item[column.prop].length" />
|
<text class="content">{{ item.applyUser}}</text>
|
||||||
</view>
|
</view>
|
||||||
<!-- #ifndef APP-HARMONY -->
|
<view class="item-row">
|
||||||
<view class="item-cell-content" v-else-if="column.jnpfKey == 'uploadFile'" @click.stop>
|
<text class="label">创建时间:</text>
|
||||||
<JnpfUploadFile v-model="item[column.prop]" detailed
|
<text class="content">{{ formatTime(item.create_time) }}</text>
|
||||||
v-if="item[column.prop]&&item[column.prop].length" align="left" />
|
|
||||||
</view>
|
</view>
|
||||||
<!-- #endif -->
|
</view>
|
||||||
<!-- #ifdef APP-HARMONY -->
|
|
||||||
<view class="item-cell-content" v-else-if="column.jnpfKey == 'uploadFile'" @click.stop>
|
<!-- 右侧状态图 -->
|
||||||
<JnpfUploadFileH v-model="item[column.prop]" detailed
|
<view class="item-right">
|
||||||
v-if="item[column.prop]&&item[column.prop].length" align="left" />
|
<image
|
||||||
</view>
|
v-if="item.approveStatusName == '未审核'"
|
||||||
<!-- #endif -->
|
src="../../img/UNAPPROVED.png"
|
||||||
<view class="item-cell-content" v-else-if="column.jnpfKey == 'rate'">
|
mode="widthFix"
|
||||||
<JnpfRate v-model="item[column.prop]" :max="column.count"
|
class="status-img" />
|
||||||
:allowHalf="column.allowHalf" disabled />
|
<image
|
||||||
</view>
|
v-if="item.approveStatusName == '审批中'"
|
||||||
<view class="item-cell-content item-cell-slider" v-else-if="column.jnpfKey == 'slider'">
|
src="../../img/APPROVING.png"
|
||||||
<JnpfSlider v-model="item[column.prop]" :min="column.min" :max="column.max"
|
mode="widthFix"
|
||||||
:step="column.step" disabled />
|
class="status-img" />
|
||||||
</view>
|
<image
|
||||||
<view class="item-cell-content" v-else-if="column.jnpfKey == 'input'">
|
v-if="item.approveStatusName == '已审批'"
|
||||||
<JnpfInput v-model="item[column.prop]" detailed showOverflow
|
src="../../img/APPROVED.png"
|
||||||
:useMask="column.useMask" :maskConfig="column.maskConfig" align='left' />
|
mode="widthFix"
|
||||||
</view>
|
class="status-img" />
|
||||||
<text class="item-cell-content" v-else>{{item[column.prop]}}</text>
|
<image
|
||||||
</template>
|
v-if="item.approveStatusName == '已驳回'"
|
||||||
<tableCell v-else @click.stop class="tableCell" ref="tableCell" :label="column.label"
|
src="../../img/REJECTED.png"
|
||||||
:childList="item[column.prop]" :children="column.children" :pageLen="3"
|
mode="widthFix"
|
||||||
@cRelationForm="relationFormClick" :key="item.id+i">
|
class="status-img" />
|
||||||
</tableCell>
|
<image
|
||||||
</view>
|
v-if="item.approveStatusName == '已作废'"
|
||||||
<view class="item-cell" v-if="config.enableFlow==1">
|
src="../../img/INVALID.png"
|
||||||
<text class="item-cell-label">审批状态:</text>
|
mode="widthFix"
|
||||||
<text :style="{color:useDefine.getFlowStatusColor(item.flowState)}">
|
class="status-img" />
|
||||||
{{useDefine.getFlowStatusContent(item.flowState)}}
|
</view>
|
||||||
</text>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@@ -75,9 +64,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
// 脚本部分无需修改,保持原逻辑
|
||||||
useDefineSetting
|
import { useDefineSetting } from '@/utils/useDefineSetting';
|
||||||
} from '@/utils/useDefineSetting';
|
|
||||||
import tableCell from '../tableCell.vue'
|
import tableCell from '../tableCell.vue'
|
||||||
import SwipeItem from "@/components/SwipeItem/index"
|
import SwipeItem from "@/components/SwipeItem/index"
|
||||||
export default {
|
export default {
|
||||||
@@ -86,7 +74,14 @@
|
|||||||
tableCell,
|
tableCell,
|
||||||
SwipeItem
|
SwipeItem
|
||||||
},
|
},
|
||||||
props: ['config', 'list', 'columnList', 'actionOptions', 'showSelect', 'checkedAll', 'modelValue', 'isMoreBtn',
|
props: [
|
||||||
|
'config',
|
||||||
|
'list',
|
||||||
|
'actionOptions',
|
||||||
|
'showSelect',
|
||||||
|
'checkedAll',
|
||||||
|
'modelValue',
|
||||||
|
'isMoreBtn',
|
||||||
'customBtnsList'
|
'customBtnsList'
|
||||||
],
|
],
|
||||||
data() {
|
data() {
|
||||||
@@ -121,28 +116,41 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/* 关联表单操作 */
|
formatTime(timestamp) {
|
||||||
|
if (!timestamp) return '-';
|
||||||
|
const date = new Date(timestamp);
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
const hours = String(date.getHours()).padStart(2, '0');
|
||||||
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||||
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||||
|
},
|
||||||
|
getStatusClass(statusName) {
|
||||||
|
switch (statusName) {
|
||||||
|
case '已审批':
|
||||||
|
return 'status-approved';
|
||||||
|
case '未审核':
|
||||||
|
return 'status-unchecked';
|
||||||
|
default:
|
||||||
|
return 'status-other';
|
||||||
|
}
|
||||||
|
},
|
||||||
relationFormClick(item, column) {
|
relationFormClick(item, column) {
|
||||||
this.$emit('relationFormClick', item, column)
|
this.$emit('relationFormClick', item, column)
|
||||||
},
|
},
|
||||||
/* 跳转详情 */
|
|
||||||
goDetail(item) {
|
goDetail(item) {
|
||||||
this.$emit('goDetail', item)
|
this.$emit('goDetail', item)
|
||||||
},
|
},
|
||||||
actionClick(data) {
|
actionClick(data) {
|
||||||
const {
|
const { index, value } = data
|
||||||
index,
|
|
||||||
value
|
|
||||||
} = data
|
|
||||||
if (value === 'remove') return this.$emit('handleClick', index)
|
if (value === 'remove') return this.$emit('handleClick', index)
|
||||||
if (value === 'more') return this.$emit('handleMoreClick', index)
|
if (value === 'more') return this.$emit('handleMoreClick', index)
|
||||||
},
|
},
|
||||||
/* 列表选择框 */
|
|
||||||
checkboxChange(e, item) {
|
checkboxChange(e, item) {
|
||||||
const isSelected = e.value;
|
const isSelected = e.value;
|
||||||
const selectedItemsSet = new Set(this.selectData.map(selectedItem => {
|
const selectedItemsSet = new Set(this.selectData.map(selectedItem => selectedItem.id));
|
||||||
return selectedItem.id;
|
|
||||||
}));
|
|
||||||
if (isSelected) {
|
if (isSelected) {
|
||||||
selectedItemsSet.add(item.id);
|
selectedItemsSet.add(item.id);
|
||||||
} else {
|
} else {
|
||||||
@@ -153,67 +161,113 @@
|
|||||||
});
|
});
|
||||||
this.$emit('selectCheckbox', this.selectData);
|
this.$emit('selectCheckbox', this.selectData);
|
||||||
},
|
},
|
||||||
/* 全部选中 */
|
|
||||||
handleCheckAll() {
|
handleCheckAll() {
|
||||||
this.selectData = []
|
this.selectData = []
|
||||||
if (this.checkedAll) this.selectData = this.list.filter(o => o.checked)
|
if (this.checkedAll) this.selectData = this.list.filter(o => o.checked)
|
||||||
this.$emit('selectCheckbox', this.selectData)
|
this.$emit('selectCheckbox', this.selectData);
|
||||||
},
|
|
||||||
/* 千分位操作 */
|
|
||||||
toThousands(val, column) {
|
|
||||||
if (val) {
|
|
||||||
let valList = val.toString().split('.')
|
|
||||||
let num = Number(valList[0])
|
|
||||||
let newVal = column.thousands ? num.toLocaleString() : num
|
|
||||||
return valList[1] ? newVal + '.' + valList[1] : newVal
|
|
||||||
} else {
|
|
||||||
return val
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.list {
|
.list {
|
||||||
.list_box {
|
background-color: #f0f2f6;
|
||||||
|
.list-box {
|
||||||
.item {
|
.item {
|
||||||
padding: 0;
|
background: #fff;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
|
||||||
|
position: relative;
|
||||||
|
|
||||||
.checkbox_box {
|
.item-content {
|
||||||
width: 60rpx;
|
display: flex;
|
||||||
height: 46rpx;
|
align-items: flex-start; /* 改为顶部对齐,避免标签错位 */
|
||||||
position: relative;
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
.checkbox {
|
.item-left {
|
||||||
position: absolute;
|
flex: 1;
|
||||||
top: 6rpx;
|
}
|
||||||
left: 8rpx;
|
|
||||||
z-index: 9999;
|
.item-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 8rpx; /* 调整行间距 */
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.label {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #909399;
|
||||||
|
min-width: 140rpx;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 单号+标签的布局样式(核心新增)
|
||||||
|
.item-header {
|
||||||
|
align-items: center;
|
||||||
|
gap: 10rpx; // 标签、单号、单号值之间的间距
|
||||||
|
// 普通标签样式
|
||||||
|
.flow-tag {
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #1677ff;
|
||||||
|
background: #e8f3ff;
|
||||||
|
padding: 2rpx 8rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
// 单号文本样式
|
||||||
|
.bill-label {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 流程名称样式(对应图中的“管理员的动火审批流程”)
|
||||||
|
.flow-name {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #1E293B;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-tag {
|
||||||
|
padding: 4rpx 16rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #fff;
|
||||||
|
&.status-approved {
|
||||||
|
background-color: #67c23a;
|
||||||
|
}
|
||||||
|
&.status-unchecked {
|
||||||
|
background-color: #e6a23c;
|
||||||
|
}
|
||||||
|
&.status-other {
|
||||||
|
background-color: #909399;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 右侧状态图样式
|
||||||
|
.item-right {
|
||||||
|
width: 100rpx;
|
||||||
|
height: 160rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
.status-img {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.right-option-box {
|
|
||||||
display: flex;
|
|
||||||
width: max-content;
|
|
||||||
|
|
||||||
.right-option {
|
|
||||||
width: 144rpx;
|
|
||||||
height: 100%;
|
|
||||||
font-size: 16px;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #dd524d;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.more-option {
|
|
||||||
background-color: #1890ff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<u-form :model="formData" ref="dataForm" :errorType="['toast']" label-position="left" label-width="150">
|
<u-form :model="formData" ref="dataForm" :errorType="['toast']" label-position="left" label-width="150">
|
||||||
<u-form-item :label="item.label" :prop="item.id" v-for="(item, i) in formConfCopy" :key="i">
|
<u-form-item :label="item.label" :prop="item.id" v-for="(item, i) in formConfCopy" :key="`${item.id}-${i}`">
|
||||||
<JnpfInput v-if="useInputList.includes(item.__config__.jnpfKey)" input-align='right'
|
<JnpfInput v-if="useInputList.includes(item.__config__.jnpfKey)" input-align='right'
|
||||||
v-model="formData[item.id]" :placeholder="textPrefix+item.label" clearable />
|
v-model="formData[item.id]" :placeholder="textPrefix+item.label" clearable />
|
||||||
<template v-if="['inputNumber','calculate'].includes(item.__config__.jnpfKey)">
|
<template v-if="['inputNumber','calculate'].includes(item.__config__.jnpfKey)">
|
||||||
@@ -12,11 +12,19 @@
|
|||||||
<template v-if="['rate', 'slider'].includes(item.__config__.jnpfKey)">
|
<template v-if="['rate', 'slider'].includes(item.__config__.jnpfKey)">
|
||||||
<JnpfNumberRange v-model="formData[item.id]" :precision="item.allowHalf ? 1 : 0" />
|
<JnpfNumberRange v-model="formData[item.id]" :precision="item.allowHalf ? 1 : 0" />
|
||||||
</template>
|
</template>
|
||||||
<JnpfSelect v-if="useSelectList.includes(item.__config__.jnpfKey)" v-model="formData[item.id]"
|
<JnpfSelect
|
||||||
:placeholder="selectPrefix+item.label" :options="item.options" :props="item.props"
|
v-if="useSelectList.includes(item.__config__.jnpfKey)"
|
||||||
:multiple="item.searchMultiple" :key="key" filterable />
|
v-model="formData[item.id]"
|
||||||
|
:placeholder="selectPrefix+item.label"
|
||||||
|
:options="item.options || []"
|
||||||
|
:props="item.props || { label: 'label', value: 'value' }"
|
||||||
|
:multiple="!!item.searchMultiple"
|
||||||
|
:key="`select-${item.id}-${key}`"
|
||||||
|
filterable
|
||||||
|
/>
|
||||||
|
|
||||||
<JnpfCascader v-if="item.__config__.jnpfKey==='cascader'" v-model="formData[item.id]"
|
<JnpfCascader v-if="item.__config__.jnpfKey==='cascader'" v-model="formData[item.id]"
|
||||||
:placeholder="selectPrefix+item.label" :options="item.options" :props="item.props" filterable
|
:placeholder="selectPrefix+item.label" :options="item.options || []" :props="item.props" filterable
|
||||||
:showAllLevels="item.showAllLevels" :multiple="item.searchMultiple" />
|
:showAllLevels="item.showAllLevels" :multiple="item.searchMultiple" />
|
||||||
<JnpfAutoComplete v-if="item.__config__.jnpfKey==='autoComplete'" v-model="formData[item.id]"
|
<JnpfAutoComplete v-if="item.__config__.jnpfKey==='autoComplete'" v-model="formData[item.id]"
|
||||||
:interfaceName="item.interfaceName" :placeholder="selectPrefix+item.label"
|
:interfaceName="item.interfaceName" :placeholder="selectPrefix+item.label"
|
||||||
@@ -44,10 +52,12 @@
|
|||||||
<JnpfUsersSelect v-if="item.__config__.jnpfKey==='usersSelect'" v-model="formData[item.id]"
|
<JnpfUsersSelect v-if="item.__config__.jnpfKey==='usersSelect'" v-model="formData[item.id]"
|
||||||
:placeholder="selectPrefix+item.label" :clearable="item.clearable" />
|
:placeholder="selectPrefix+item.label" :clearable="item.clearable" />
|
||||||
<JnpfTreeSelect v-if="item.__config__.jnpfKey==='treeSelect'" v-model="formData[item.id]"
|
<JnpfTreeSelect v-if="item.__config__.jnpfKey==='treeSelect'" v-model="formData[item.id]"
|
||||||
:options="item.options" :props="item.props" :placeholder="selectPrefix+item.label" filterable
|
:options="item.options || []" :props="item.props" :placeholder="selectPrefix+item.label" filterable
|
||||||
:multiple="item.searchMultiple" />
|
:multiple="item.searchMultiple" />
|
||||||
<JnpfAreaSelect v-if="item.__config__.jnpfKey==='areaSelect'" v-model="formData[item.id]"
|
<JnpfAreaSelect v-if="item.__config__.jnpfKey==='areaSelect'" v-model="formData[item.id]"
|
||||||
:placeholder="selectPrefix+item.label" :level="item.level" :multiple="item.searchMultiple" />
|
:placeholder="selectPrefix+item.label" :level="item.level" :multiple="item.searchMultiple" />
|
||||||
|
|
||||||
|
<!-- 日期/时间选择 -->
|
||||||
<template v-if="useDateList.includes(item.__config__.jnpfKey)">
|
<template v-if="useDateList.includes(item.__config__.jnpfKey)">
|
||||||
<JnpfDatePicker v-model="formData[item.id]" :format='item.format' v-if="item.__config__.isFromParam" />
|
<JnpfDatePicker v-model="formData[item.id]" :format='item.format' v-if="item.__config__.isFromParam" />
|
||||||
<JnpfDateRange v-model="formData[item.id]" :format='item.format' v-else />
|
<JnpfDateRange v-model="formData[item.id]" :format='item.format' v-else />
|
||||||
@@ -58,41 +68,71 @@
|
|||||||
</u-form>
|
</u-form>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
|
||||||
getDictionaryDataSelector,
|
|
||||||
getDataInterfaceRes
|
|
||||||
} from '@/api/common'
|
|
||||||
const dyOptionsList = ['radio', 'checkbox', 'select', 'cascader', 'treeSelect'];
|
const dyOptionsList = ['radio', 'checkbox', 'select', 'cascader', 'treeSelect'];
|
||||||
const useSelectList = ['radio', 'checkbox', 'select'];
|
const useSelectList = ['radio', 'checkbox', 'select'];
|
||||||
const useInputList = ['input', 'textarea', 'text', 'link', 'billRule', 'location'];
|
const useInputList = ['input', 'textarea', 'text', 'link', 'billRule', 'location'];
|
||||||
const useDateList = ['createTime', 'modifyTime', 'datePicker', 'dateCalculate'];
|
const useDateList = ['createTime', 'modifyTime', 'datePicker', 'dateCalculate'];
|
||||||
const useArrList = ['cascader', 'address', 'numInput', 'calculate', ...useDateList]
|
const useArrList = ['cascader', 'address', 'numInput', 'calculate', ...useDateList]
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['formConf', 'webType', 'searchFormData'],
|
props: ['formConf', 'webType', 'searchFormData'],
|
||||||
data() {
|
data() {
|
||||||
const data = {
|
return {
|
||||||
useInputList,
|
useInputList,
|
||||||
useDateList,
|
useDateList,
|
||||||
useSelectList,
|
useSelectList,
|
||||||
formConfCopy: this.$u.deepClone(this.formConf),
|
formConfCopy: [], // 初始化为空,避免提前克隆
|
||||||
formData: this.$u.deepClone(this.searchFormData),
|
formData: {},
|
||||||
key: +new Date(),
|
key: +new Date(),
|
||||||
textPrefix: this.$t('common.inputTextPrefix') + ' ',
|
textPrefix: this.$t('common.inputTextPrefix') + ' ',
|
||||||
selectPrefix: this.$t('common.chooseTextPrefix') + ' ',
|
selectPrefix: this.$t('common.chooseTextPrefix') + ' ',
|
||||||
}
|
}
|
||||||
this.initRelationForm(data.formConfCopy)
|
|
||||||
this.initFormData(data.formConfCopy, data.formData)
|
|
||||||
return data
|
|
||||||
},
|
},
|
||||||
|
// 核心:深度监听formConf变化,确保数据同步
|
||||||
watch: {
|
watch: {
|
||||||
searchFormData(val) {
|
// 监听父组件传递的formConf(深度+立即执行)
|
||||||
this.formData = val
|
formConf: {
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
handler(newVal) {
|
||||||
|
if (!newVal) return;
|
||||||
|
// 重新克隆最新的配置
|
||||||
|
this.formConfCopy = this.$u.deepClone(newVal);
|
||||||
|
// 延迟初始化,确保DOM更新
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.initRelationForm(this.formConfCopy);
|
||||||
|
// 初始化时彻底跳过接口请求
|
||||||
|
this.initFormData(this.formConfCopy, this.formData);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 监听搜索数据变化
|
||||||
|
searchFormData: {
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
handler(newVal) {
|
||||||
|
this.formData = this.$u.deepClone(newVal);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 初始化表单数据(彻底跳过接口请求)
|
||||||
|
*/
|
||||||
initFormData(componentList, formData) {
|
initFormData(componentList, formData) {
|
||||||
|
console.log('Parser接收的配置:', componentList);
|
||||||
|
if (!componentList || !Array.isArray(componentList)) return;
|
||||||
|
|
||||||
componentList.forEach(cur => {
|
componentList.forEach(cur => {
|
||||||
const config = cur.__config__
|
const config = cur.__config__ || {};
|
||||||
|
if (cur.id && formData[cur.id] === undefined) {
|
||||||
|
// 初始化表单默认值
|
||||||
|
formData[cur.id] = cur.value || (cur.searchMultiple ? [] : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 原接口逻辑全部注释,彻底跳过
|
||||||
|
/*
|
||||||
if (dyOptionsList.indexOf(config.jnpfKey) > -1) {
|
if (dyOptionsList.indexOf(config.jnpfKey) > -1) {
|
||||||
if (config.dataType === 'dictionary' && config.dictionaryType) {
|
if (config.dataType === 'dictionary' && config.dictionaryType) {
|
||||||
getDictionaryDataSelector(config.dictionaryType).then(res => {
|
getDictionaryDataSelector(config.dictionaryType).then(res => {
|
||||||
@@ -113,51 +153,71 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
*/
|
||||||
|
});
|
||||||
|
|
||||||
|
// 更新key强制刷新组件
|
||||||
|
this.key = +new Date();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化关联表单配置
|
||||||
|
*/
|
||||||
initRelationForm(componentList) {
|
initRelationForm(componentList) {
|
||||||
|
if (!componentList) return;
|
||||||
componentList.forEach(cur => {
|
componentList.forEach(cur => {
|
||||||
const config = cur.__config__
|
const config = cur.__config__ || {};
|
||||||
if (config.jnpfKey == 'relationFormAttr' || config.jnpfKey == 'popupAttr') {
|
if (config.jnpfKey == 'relationFormAttr' || config.jnpfKey == 'popupAttr') {
|
||||||
const relationKey = cur.relationField.split("_jnpfTable_")[0]
|
const relationKey = cur.relationField?.split("_jnpfTable_")[0];
|
||||||
|
if (!relationKey) return;
|
||||||
componentList.forEach(item => {
|
componentList.forEach(item => {
|
||||||
const noVisibility = Array.isArray(item.__config__.visibility) && !item
|
const noVisibility = Array.isArray(item.__config__?.visibility) && !item.__config__.visibility.includes('app');
|
||||||
.__config__.visibility.includes('app')
|
if ((relationKey == item.id) && (noVisibility || !!item.__config__?.noShow)) {
|
||||||
if ((relationKey == item.id) && (noVisibility || !!item.__config__
|
cur.__config__.noShow = true;
|
||||||
.noShow)) {
|
|
||||||
cur.__config__.noShow = true
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
if (cur.__config__.children && cur.__config__.children.length) this.initRelationForm(cur
|
if (cur.__config__?.children && cur.__config__.children.length) {
|
||||||
.__config__.children)
|
this.initRelationForm(cur.__config__.children);
|
||||||
})
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取表单数据(空值处理)
|
||||||
|
*/
|
||||||
allCondition() {
|
allCondition() {
|
||||||
for (let key in this.formData) {
|
const result = {...this.formData};
|
||||||
if (this.formData[key] !== 0 && !this.formData[key]) this.formData[key] = undefined;
|
for (let key in result) {
|
||||||
if (this.formData[key] && Array.isArray(this.formData[key]) && !this.formData[key]
|
if (result[key] === 0) continue;
|
||||||
.length) {
|
if (!result[key] || (Array.isArray(result[key]) && result[key].length === 0)) {
|
||||||
this.formData[key] = undefined
|
delete result[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this.formData
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交表单
|
||||||
|
*/
|
||||||
submitForm() {
|
submitForm() {
|
||||||
|
if (!this.$refs.dataForm) {
|
||||||
|
this.$emit('submit', this.allCondition());
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.$refs.dataForm.validate(valid => {
|
this.$refs.dataForm.validate(valid => {
|
||||||
if (!valid) return
|
if (!valid) return;
|
||||||
for (let key in this.formData) {
|
this.$emit('submit', this.allCondition());
|
||||||
if (this.formData[key] !== 0 && !this.formData[key]) this.formData[key] = undefined;
|
});
|
||||||
if (this.formData[key] && Array.isArray(this.formData[key]) && !this.formData[key]
|
|
||||||
.length) {
|
|
||||||
this.formData[key] = undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.$emit('submit', this.formData)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置表单
|
||||||
|
*/
|
||||||
resetForm() {
|
resetForm() {
|
||||||
this.$refs.dataForm.resetFields()
|
if (this.$refs.dataForm) {
|
||||||
|
this.$refs.dataForm.resetFields();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
BIN
pages/apply/dynamicModel/img/APPROVED.png
Normal file
BIN
pages/apply/dynamicModel/img/APPROVED.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
BIN
pages/apply/dynamicModel/img/APPROVING.png
Normal file
BIN
pages/apply/dynamicModel/img/APPROVING.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 MiB |
BIN
pages/apply/dynamicModel/img/INVALID.png
Normal file
BIN
pages/apply/dynamicModel/img/INVALID.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
BIN
pages/apply/dynamicModel/img/REJECTED.png
Normal file
BIN
pages/apply/dynamicModel/img/REJECTED.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 MiB |
BIN
pages/apply/dynamicModel/img/UNAPPROVED.png
Normal file
BIN
pages/apply/dynamicModel/img/UNAPPROVED.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 MiB |
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="dynamicModel-v">
|
<view class="dynamicModel-v">
|
||||||
<Form v-if="webType == 1" :config="config" :modelId="modelId" :isPreview="isPreview" />
|
<!-- <Form :config="config" :modelId="modelId" :isPreview="isPreview" /> -->
|
||||||
<List v-if="webType == 2 || webType == 4" :config="config" :modelId="modelId" :isPreview="isPreview"
|
<List :config="config" :modelId="modelId" :isPreview="isPreview"
|
||||||
:title="title" :menuId="menuId" ref="List" />
|
:title="title" :menuId="menuId" ref="List" />
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
import {
|
import {
|
||||||
useBaseStore
|
useBaseStore
|
||||||
} from '@/store/modules/base'
|
} from '@/store/modules/base'
|
||||||
|
import { computed } from "vue";
|
||||||
const baseStore = useBaseStore()
|
const baseStore = useBaseStore()
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -41,18 +42,18 @@
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
onLoad(obj) {
|
onLoad(obj) {
|
||||||
baseStore.getDictionaryDataAll()
|
// baseStore.getDictionaryDataAll()
|
||||||
this.config = JSON.parse(this.jnpf.base64.decode(obj.config)) || {};
|
this.config = JSON.parse(this.jnpf.base64.decode(obj.config)) || {};
|
||||||
this.isPreview = this.config.isPreview || false;
|
this.isPreview = this.config.isPreview || false;
|
||||||
this.enableFlow = this.config.type === 9 ? 1 : 0;
|
this.enableFlow = this.config.type === 9 ? 1 : 0;
|
||||||
this.title = this.config.fullName || "";
|
this.title = this.config.name || "";
|
||||||
this.menuId = this.config.id || "";
|
this.modelId = this.config.id || "";
|
||||||
uni.setNavigationBarTitle({
|
uni.setNavigationBarTitle({
|
||||||
title: this.title,
|
title: this.title,
|
||||||
});
|
});
|
||||||
if (!this.enableFlow) return this.getConfigData();
|
// if (!this.enableFlow) return this.getConfigData();
|
||||||
this.flowId = this.config.moduleId
|
this.flowId = this.config.moduleId
|
||||||
this.getModelId()
|
// this.getModelId()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取流程版本ID和发起节点表单ID
|
// 获取流程版本ID和发起节点表单ID
|
||||||
@@ -60,7 +61,7 @@
|
|||||||
getFlowStartFormId(this.flowId).then(res => {
|
getFlowStartFormId(this.flowId).then(res => {
|
||||||
if (!res.data || !res.data.formId) return;
|
if (!res.data || !res.data.formId) return;
|
||||||
this.config.moduleId = res.data.formId
|
this.config.moduleId = res.data.formId
|
||||||
this.getConfigData();
|
// this.getConfigData();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getConfigData() {
|
getConfigData() {
|
||||||
|
|||||||
@@ -931,6 +931,8 @@
|
|||||||
name: this.config.name,
|
name: this.config.name,
|
||||||
billNoPrefix: this.config.billNoPrefix
|
billNoPrefix: this.config.billNoPrefix
|
||||||
}
|
}
|
||||||
|
console.log(config,'config12233')
|
||||||
|
|
||||||
const url = '/pages/apply/dynamicModelList/' + type + '?config=' +
|
const url = '/pages/apply/dynamicModelList/' + type + '?config=' +
|
||||||
this.jnpf.base64.encode(JSON.stringify(config))
|
this.jnpf.base64.encode(JSON.stringify(config))
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
|
|||||||
@@ -1,63 +1,75 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="dynamicModel-form-v jnpf-wrap jnpf-wrap-form" v-if="showPage">
|
<view class="dynamicModel-form-v jnpf-wrap jnpf-wrap-form" v-if="showPage">
|
||||||
<JnpfParser :formConf="formConf" ref="dynamicForm" @submit="sumbitForm" :key="key" v-if="!loading" />
|
<JnpfParser :formConf="formConf" ref="dynamicForm" @submit="sumbitForm" :key="key" v-if="!loading" />
|
||||||
|
|
||||||
<!-- 审批记录区域 -->
|
<!-- 审批记录区域 -->
|
||||||
<view v-if="false&&(dataForm.approveStatus == 1 || dataForm.approveStatus == 2)">
|
<view v-if="approvalData.length">
|
||||||
<view class="approval-title">审批记录</view>
|
<view class="approval-title">审批记录</view>
|
||||||
<view class="approval-list">
|
<view class="approval-list">
|
||||||
<view
|
<view
|
||||||
class="approval-item"
|
class="approval-item"
|
||||||
v-for="(item, index) in approvalData"
|
v-for="(item, index) in approvalData"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
>
|
>
|
||||||
<!-- 审批内容 -->
|
<!-- 左侧状态线 + 状态点 -->
|
||||||
<view class="approval-content">
|
<view class="approval-line-container">
|
||||||
<view class="task-header">
|
<!-- 状态点 -->
|
||||||
<text class="task-name">任务:{{ item.name }}</text>
|
<view class="status-icon" :class="getStatusClass(item.result)">
|
||||||
<view class="status-tag" :class="getStatusTagClass(item.result)">
|
<!-- <u-icon
|
||||||
{{ item.result === 1 ? '处理中' : (item.result === 2 ? '通过' : '不通过') }}
|
:name="item.result === 1 ? 'clock' : (item.result === 2 ? 'checkmark-circle' : 'close-circle')"
|
||||||
</view>
|
size="20"
|
||||||
</view>
|
:color="item.result === 1 ? '#409EFF' : (item.result === 2 ? '#67C23A' : '#F56C6C')"
|
||||||
|
/> -->
|
||||||
|
</view>
|
||||||
|
<!-- 竖线(最后一条隐藏) -->
|
||||||
|
<view class="approval-line" v-if="index < approvalData.length - 1"></view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<view class="info-row">
|
<!-- 审批内容 -->
|
||||||
<text class="info-label">审批人:</text>
|
<view class="approval-content">
|
||||||
<text class="info-value">{{ item.assigneeUser.nickname }}</text>
|
<!-- 任务名称 + 状态标签 -->
|
||||||
<view class="dept-tag">{{ item.assigneeUser.deptName }}</view>
|
<view class="task-header">
|
||||||
|
<text class="task-name">任务:{{ item.name }}</text>
|
||||||
|
<!-- 状态标签(参考图的右上角样式) -->
|
||||||
|
<view class="status-tag" :class="getStatusTagClass(item.result)">
|
||||||
|
{{ item.result === 1 ? '审批中' : (item.result === 2 ? '已提交' : '不通过') }}
|
||||||
|
<!-- 时间显示在标签右侧 -->
|
||||||
|
<text class="status-time">{{ formatTime(item.createTime) }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<text class="info-label ml-20">创建时间:</text>
|
<!-- 审批人信息 -->
|
||||||
<text class="info-value">{{ formatTime(item.createTime) }}</text>
|
<view class="info-row">
|
||||||
|
<text class="info-label">审批人:</text>
|
||||||
|
<text class="info-value">{{ item.assigneeUser.nickname }}</text>
|
||||||
|
<text class="info-value-tag">{{ item.assigneeUser.deptName }}</text>
|
||||||
|
|
||||||
<text class="info-label ml-20" v-if="item.endTime">审批时间:</text>
|
<view class="pending-tag" v-if="item.result === 1">待审批</view>
|
||||||
<text class="info-value" v-if="item.endTime">{{ formatTime(item.endTime) }}</text>
|
</view>
|
||||||
|
|
||||||
<text class="info-label ml-20" v-if="item.durationInMillis">耗时:</text>
|
<!-- 审批意见(有则显示) -->
|
||||||
<text class="info-value" v-if="item.durationInMillis">{{ formatDuration(item.durationInMillis) }}</text>
|
<view class="reason-box" v-if="item.reason">
|
||||||
</view>
|
{{ item.reason }}
|
||||||
|
</view>
|
||||||
<view class="reason-box" v-if="item.reason">
|
</view>
|
||||||
{{ item.reason }}
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 底部操作按钮区域 -->
|
<!-- 底部操作按钮区域 -->
|
||||||
<view class="buttom-actions" v-if="btnType === 'btn_edit' || btnType === 'btn_add'">
|
<view v-if="!loading && (!(dataForm.approveStatus == 1 || dataForm.approveStatus == 2 || dataForm.approveStatus == 4) || !dataForm.id || config.current && config.current == 2)" class="buttom-actions">
|
||||||
<CustomButton
|
<u-button v-if="(!dataForm.approveStatus && dataForm.id) || dataForm.approveStatus == 3" class="buttom-btn launch-flow-btn" type="primary" @click.stop="handleLaunchFlow" :disabled="idDsabled" :loading="btnLoading">
|
||||||
class="u-flex buttom-btn-left-inner"
|
发起流程
|
||||||
:btnText="getCancelText"
|
|
||||||
btnIcon="icon-ym icon-ym-add-cancel"
|
|
||||||
customIcon
|
|
||||||
:btnLoading="btnLoading"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<u-button class="buttom-btn" type="primary" @click.stop="submit" :disabled="idDsabled" :loading="btnLoading">
|
|
||||||
{{getOkText}}
|
|
||||||
</u-button>
|
</u-button>
|
||||||
|
<u-button v-if="!config.current" class="buttom-btn" type="primary" @click.stop="submit" :disabled="idDsabled" :loading="btnLoading">
|
||||||
<view class="more-btn" @click.stop="toggleMoreMenu" v-if="dataForm.id && moreMenuList.length && !idDsabled">
|
保存
|
||||||
|
</u-button>
|
||||||
|
<u-button v-if="config.current == 2" class="buttom-btn" type="error" @click.stop="handleFail" :disabled="idDsabled" :loading="btnLoading">
|
||||||
|
不通过
|
||||||
|
</u-button>
|
||||||
|
<u-button v-if="config.current == 2" class="buttom-btn launch-flow-btn" type="primary" @click.stop="handleThrough" :disabled="idDsabled" :loading="btnLoading">
|
||||||
|
通过
|
||||||
|
</u-button>
|
||||||
|
<view class="more-btn" @click.stop="toggleMoreMenu" v-if="dataForm.id && moreMenuList.length && !idDsabled || config.current == 2">
|
||||||
<u-icon name="more-dot-fill" size="34"></u-icon>
|
<u-icon name="more-dot-fill" size="34"></u-icon>
|
||||||
<text class="more-text">{{$t('common.moreText')}}</text>
|
<text class="more-text">{{$t('common.moreText')}}</text>
|
||||||
|
|
||||||
@@ -69,7 +81,7 @@
|
|||||||
:style="{color: item.color || '#333'}"
|
:style="{color: item.color || '#333'}"
|
||||||
>
|
>
|
||||||
<view @click.stop="handleMoreMenuClick(item)">
|
<view @click.stop="handleMoreMenuClick(item)">
|
||||||
<text class="menu-icon" :class="item.icon"></text>
|
<!-- <text class="menu-icon" :class="item.icon"></text> -->
|
||||||
<text class="menu-label">{{item.label}}</text>
|
<text class="menu-label">{{item.label}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -207,6 +219,66 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
|
<!-- 抄送规则弹窗 -->
|
||||||
|
<u-popup v-model="showCopyDialog" mode="center" :round="10">
|
||||||
|
<view class="copy-dialog">
|
||||||
|
<view class="dialog-header">
|
||||||
|
<text class="dialog-title">修改任务规则</text>
|
||||||
|
<u-icon name="close" size="24" color="#999" @click="showCopyDialog = false" class="close-icon"></u-icon>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="dialog-content">
|
||||||
|
<!-- <view class="form-item">
|
||||||
|
<text class="label">任务名称</text>
|
||||||
|
<text class="value">{{ copyForm.taskName || '安全监护人' }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="form-item">
|
||||||
|
<text class="label">任务标识</text>
|
||||||
|
<text class="value">{{ copyForm.taskId || '' }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="form-item">
|
||||||
|
<text class="label">流程名称</text>
|
||||||
|
<text class="value">{{ copyForm.flowName || '动土作业审批' }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="form-item">
|
||||||
|
<text class="label">流程标识</text>
|
||||||
|
<text class="value">{{ copyForm.flowId || '' }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="form-item required">
|
||||||
|
<text class="label">规则类型</text>
|
||||||
|
<u-select v-model="copyForm.ruleType" placeholder="请选择"> -->
|
||||||
|
<!-- <u-select-item label="用户" value="user"></u-select-item> -->
|
||||||
|
<!-- 如果有其他类型,可以在这里添加 -->
|
||||||
|
<!-- </u-select> -->
|
||||||
|
<!-- </view> -->
|
||||||
|
<view class="form-item-user required">
|
||||||
|
<text class="label">指定用户</text>
|
||||||
|
<view>
|
||||||
|
<user-select
|
||||||
|
v-model="copyForm.options"
|
||||||
|
placeholder="请选择用户"
|
||||||
|
:multiple="true"
|
||||||
|
:selectType="type"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="form-item required">
|
||||||
|
<text class="label">抄送原因</text>
|
||||||
|
<u-input
|
||||||
|
v-model="copyForm.reason"
|
||||||
|
type="textarea"
|
||||||
|
placeholder="请输入抄送原因"
|
||||||
|
:rows="3"
|
||||||
|
border="surround"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="dialog-footer">
|
||||||
|
<u-button class="footer-btn cancel-btn" @click="showCopyDialog = false">取消</u-button>
|
||||||
|
<u-button class="footer-btn submit-btn" type="primary" @click="submitCopyRule" :loading="copySubmitting">确定</u-button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -226,7 +298,7 @@
|
|||||||
} from '@/api/apply/visualDev'
|
} from '@/api/apply/visualDev'
|
||||||
import UserSelect from '@/components/Jnpf/CandidateSelect'
|
import UserSelect from '@/components/Jnpf/CandidateSelect'
|
||||||
import {getOrganizeSelector} from '@/api/common.js'
|
import {getOrganizeSelector} from '@/api/common.js'
|
||||||
|
import flowBtn from '../../workFlow/components/flowBtn.vue'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
CustomButton,
|
CustomButton,
|
||||||
@@ -278,21 +350,26 @@
|
|||||||
showApprovalReasonDialog: false, // 弹窗显示状态
|
showApprovalReasonDialog: false, // 弹窗显示状态
|
||||||
approvalType: '', // 审批类型:through(通过) / fail(不通过)
|
approvalType: '', // 审批类型:through(通过) / fail(不通过)
|
||||||
approvalReason: '', // 审批意见内容
|
approvalReason: '', // 审批意见内容
|
||||||
approvalSubmitting: false // 提交加载状态
|
approvalSubmitting: false, // 提交加载状态
|
||||||
|
// 抄送
|
||||||
|
showCopyDialog: false,
|
||||||
|
copySubmitting: false,
|
||||||
|
copyForm: {
|
||||||
|
processInstanceKey: '',
|
||||||
|
processInstanceName: '',
|
||||||
|
options: {},
|
||||||
|
reason: ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
getOkText() {
|
getOkText() {
|
||||||
const text = this.formConf.confirmButtonTextI18nCode ?
|
// btnType
|
||||||
this.$t(this.formConf.confirmButtonTextI18nCode, this.formConf.confirmButtonText) :
|
console.log(this.btnType,'btnType--')
|
||||||
this.formConf.confirmButtonText;
|
return this.$t('common.saveText');
|
||||||
return text || this.$t('common.okText');
|
|
||||||
},
|
},
|
||||||
getCancelText() {
|
getProcessText() {
|
||||||
const text = this.formConf.cancelButtonTextI18nCode ?
|
return '发起流程'
|
||||||
this.$t(this.formConf.cancelButtonTextI18nCode, this.formConf.cancelButtonText) :
|
|
||||||
this.formConf.cancelButtonText;
|
|
||||||
return text || this.$t('common.cancelText');
|
|
||||||
},
|
},
|
||||||
isAllCandidatesSelected() {
|
isAllCandidatesSelected() {
|
||||||
const result = this.approverList.every(item=>{
|
const result = this.approverList.every(item=>{
|
||||||
@@ -325,7 +402,7 @@
|
|||||||
btnType = '',
|
btnType = '',
|
||||||
modelId,
|
modelId,
|
||||||
isPreview = '0',
|
isPreview = '0',
|
||||||
id = ''
|
id = '',
|
||||||
} = config
|
} = config
|
||||||
const formPermissionList =[]
|
const formPermissionList =[]
|
||||||
Object.assign(this, {
|
Object.assign(this, {
|
||||||
@@ -358,6 +435,9 @@
|
|||||||
...this.approverList[index],
|
...this.approverList[index],
|
||||||
[name] : value
|
[name] : value
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
handleRuleUserChange(node, value, data){
|
||||||
|
|
||||||
},
|
},
|
||||||
confirmLaunchFlow() {
|
confirmLaunchFlow() {
|
||||||
const result = this.approverList.every(item=>{
|
const result = this.approverList.every(item=>{
|
||||||
@@ -387,6 +467,10 @@
|
|||||||
processDefinitionId: this.selectedProcess
|
processDefinitionId: this.selectedProcess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.getListCreateData(params)
|
||||||
|
},
|
||||||
|
// 请求日志
|
||||||
|
getListCreateData(params){
|
||||||
getListCreate(params,this.modelId).then(res=>{
|
getListCreate(params,this.modelId).then(res=>{
|
||||||
if(res.code == 0) {
|
if(res.code == 0) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
@@ -403,66 +487,36 @@
|
|||||||
initMoreMenuList() {
|
initMoreMenuList() {
|
||||||
let menuList = [
|
let menuList = [
|
||||||
// {
|
// {
|
||||||
// label: '通过',
|
// label: '删除',
|
||||||
// value: 'through',
|
// value: 'delete',
|
||||||
// icon: 'icon-ym icon-ym-flow-launch',
|
// icon: 'icon-ym icon-ym-app-delete',
|
||||||
// color: '#67c23a'
|
// color: '#dd524d'
|
||||||
// },
|
// }
|
||||||
// {
|
]
|
||||||
// label: '不通过',
|
console.log(this.dataForm.approveStatus,'approveStatus--')
|
||||||
// value: 'fail',
|
if((!this.dataForm.approveStatus && this.dataForm.id) || this.dataForm.approveStatus == 3){
|
||||||
// icon: 'icon-ym icon-ym-flow-launch',
|
// 未审核 | 驳回
|
||||||
// color: '#f56c6c'
|
menuList.push({
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: '发起流程',
|
|
||||||
// value: 'launchFlow',
|
|
||||||
// icon: 'icon-ym icon-ym-flow-launch',
|
|
||||||
// color: '#0293fc'
|
|
||||||
// },
|
|
||||||
{
|
|
||||||
label: '删除',
|
label: '删除',
|
||||||
value: 'delete',
|
value: 'delete',
|
||||||
icon: 'icon-ym icon-ym-app-delete',
|
icon: 'icon-ym icon-ym-app-delete',
|
||||||
color: '#dd524d'
|
color: '#dd524d'
|
||||||
}
|
|
||||||
]
|
|
||||||
if(this.dataForm.approveStatus == 0 || this.dataForm.approveStatus == 3 || !this.dataForm.approveStatus){
|
|
||||||
menuList.unshift({
|
|
||||||
label: '发起流程',
|
|
||||||
value: 'launchFlow',
|
|
||||||
icon: 'icon-ym icon-ym-flow-launch',
|
|
||||||
color: '#0293fc'
|
|
||||||
},)
|
|
||||||
}
|
|
||||||
if(this.dataForm.approveStatus == 1){
|
|
||||||
menuList.unshift({
|
|
||||||
label: '通过',
|
|
||||||
value: 'through',
|
|
||||||
icon: 'icon-ym icon-ym-flow-launch',
|
|
||||||
color: '#67c23a'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '不通过',
|
|
||||||
value: 'fail',
|
|
||||||
icon: 'icon-ym icon-ym-flow-launch',
|
|
||||||
color: '#f56c6c'
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// if(this.dataForm.approveStatus == 1){
|
if(this.config.current == 2){
|
||||||
// menuList.unshift({
|
menuList.unshift({
|
||||||
// label: '通过',
|
label: '抄送',
|
||||||
// value: 'through',
|
value: 'send',
|
||||||
// icon: 'icon-ym icon-ym-flow-launch',
|
icon: 'icon-ym icon-ym-flow-launch',
|
||||||
// color: '#67c23a'
|
color: '#409eff'
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// label: '不通过',
|
label: '回退',
|
||||||
// value: 'fail',
|
value: 'reject',
|
||||||
// icon: 'icon-ym icon-ym-flow-launch',
|
icon: 'icon-ym icon-ym-flow-launch',
|
||||||
// color: '#f56c6c'
|
color: '#e6a23c'
|
||||||
// })
|
})
|
||||||
// }
|
}
|
||||||
this.moreMenuList = menuList
|
this.moreMenuList = menuList
|
||||||
},
|
},
|
||||||
toggleMoreMenu() {
|
toggleMoreMenu() {
|
||||||
@@ -481,18 +535,15 @@
|
|||||||
case 'edit':
|
case 'edit':
|
||||||
this.handleEdit()
|
this.handleEdit()
|
||||||
break
|
break
|
||||||
case 'launchFlow':
|
case 'send':
|
||||||
this.handleLaunchFlow()
|
this.handleSend()
|
||||||
|
break
|
||||||
|
case 'reject':
|
||||||
|
this.handleReject()
|
||||||
break
|
break
|
||||||
case 'delete':
|
case 'delete':
|
||||||
this.handleDelete()
|
this.handleDelete()
|
||||||
break
|
break
|
||||||
case 'through':
|
|
||||||
this.handleThrough()
|
|
||||||
break
|
|
||||||
case 'fail':
|
|
||||||
this.handleFail()
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleEdit() {
|
handleEdit() {
|
||||||
@@ -536,6 +587,43 @@
|
|||||||
this.loadingProcess = false
|
this.loadingProcess = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 抄送
|
||||||
|
handleSend() {
|
||||||
|
this.showCopyDialog = true
|
||||||
|
},
|
||||||
|
// 抄送-提交
|
||||||
|
submitCopyRule(){
|
||||||
|
const {id,processInstance} = this.approvalData[0]
|
||||||
|
const params = {
|
||||||
|
processType: '4',
|
||||||
|
processDefinitionId:Object.values(this.copyForm.options),
|
||||||
|
processInstanceId: this.formData.processInstanceId,
|
||||||
|
id: this.dataForm.id,
|
||||||
|
data: {
|
||||||
|
startUserId: processInstance.startUserId,
|
||||||
|
taskId: id,
|
||||||
|
...this.copyForm,
|
||||||
|
options: Object.values(this.copyForm.options),
|
||||||
|
processInstanceKey:processInstance.id,
|
||||||
|
processInstanceName:processInstance.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.getListCreateData(params)
|
||||||
|
},
|
||||||
|
// 回退
|
||||||
|
handleReject() {
|
||||||
|
const {id,processInstance} = this.approvalData[0]
|
||||||
|
const params = {
|
||||||
|
processType: '3', // 回退code todo
|
||||||
|
// processDefinitionId:Object.values(this.copyForm.options),
|
||||||
|
processInstanceId: this.formData.processInstanceId,
|
||||||
|
id: this.dataForm.id,
|
||||||
|
data: {
|
||||||
|
taskId: id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.getListCreateData(params)
|
||||||
|
},
|
||||||
selectProcess(item) {
|
selectProcess(item) {
|
||||||
this.selectedProcess = item
|
this.selectedProcess = item
|
||||||
},
|
},
|
||||||
@@ -571,17 +659,7 @@
|
|||||||
processDefinitionId: this.selectedProcess
|
processDefinitionId: this.selectedProcess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const res = await getListCreate(params,this.modelId)
|
this.getListCreateData(params)
|
||||||
if(res.code == 0) {
|
|
||||||
uni.showToast({
|
|
||||||
title: '发起成功',
|
|
||||||
icon: 'success'
|
|
||||||
})
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.$emit('refresh')
|
|
||||||
uni.navigateBack()
|
|
||||||
}, 1500)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
@@ -652,11 +730,10 @@
|
|||||||
this.showApprovalReasonDialog = true
|
this.showApprovalReasonDialog = true
|
||||||
},
|
},
|
||||||
|
|
||||||
// 新增:提交审批结果(通过/不通过)
|
// 提交审批结果(通过/不通过)
|
||||||
async submitApprovalResult() {
|
async submitApprovalResult() {
|
||||||
try {
|
try {
|
||||||
this.approvalSubmitting = true
|
this.approvalSubmitting = true
|
||||||
console.log(this.formData,'formData----')
|
|
||||||
// 构造审批参数(
|
// 构造审批参数(
|
||||||
const params = {
|
const params = {
|
||||||
processType: this.approvalType === 'through' ? 1 : 2, // 1=通过,2=不通过
|
processType: this.approvalType === 'through' ? 1 : 2, // 1=通过,2=不通过
|
||||||
@@ -669,26 +746,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//调用审批接口(替换为你的实际审批接口)
|
//调用审批接口
|
||||||
const res = await getListCreate(params,this.modelId)
|
this.getListCreateData(params)
|
||||||
if (res.code !== 0) {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg || '审批失败',
|
|
||||||
icon: 'none'
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 关闭弹窗,刷新审批记录
|
|
||||||
this.showApprovalReasonDialog = false
|
|
||||||
uni.showToast({
|
|
||||||
title: '发起成功',
|
|
||||||
icon: 'success'
|
|
||||||
})
|
|
||||||
setTimeout(() => {
|
|
||||||
// 返回上一页或刷新列表
|
|
||||||
uni.$emit('refresh')
|
|
||||||
uni.navigateBack()
|
|
||||||
}, 1500)
|
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('提交审批结果失败:', err)
|
console.error('提交审批结果失败:', err)
|
||||||
@@ -802,6 +861,7 @@
|
|||||||
applyDepName: res.data.applyDepName || '',
|
applyDepName: res.data.applyDepName || '',
|
||||||
applyDepData: res.data.applyDepData || null,
|
applyDepData: res.data.applyDepData || null,
|
||||||
};
|
};
|
||||||
|
console.log(this.formData,'formData123')
|
||||||
this.$nextTick(()=>{
|
this.$nextTick(()=>{
|
||||||
if (this.$refs.dynamicForm && this.$refs.dynamicForm.setFormData) {
|
if (this.$refs.dynamicForm && this.$refs.dynamicForm.setFormData) {
|
||||||
this.$refs.dynamicForm.setFormData('applyDepId', this.formData.applyDepId);
|
this.$refs.dynamicForm.setFormData('applyDepId', this.formData.applyDepId);
|
||||||
@@ -1220,20 +1280,31 @@
|
|||||||
.buttom-actions {
|
.buttom-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-end;
|
// justify-content: flex-end;
|
||||||
padding: 20rpx 30rpx;
|
// padding: 20rpx 30rpx;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 99;
|
z-index: 999 !important;
|
||||||
gap: 20rpx;
|
padding: 10rpx 0rpx;
|
||||||
|
// gap: 20rpx;
|
||||||
|
|
||||||
.buttom-btn {
|
.buttom-btn {
|
||||||
min-width: 180rpx;
|
width: 300rpx;
|
||||||
|
min-width: 300rpx;
|
||||||
|
padding: 12rpx 15rpx;
|
||||||
|
flex: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.launch-flow-btn {
|
||||||
|
background: #19be6b !important;
|
||||||
|
}
|
||||||
|
.launch-flow-btn[disabled] {
|
||||||
|
background: #19be6b !important;
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
.more-btn {
|
.more-btn {
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -1243,7 +1314,7 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 80rpx;
|
width: 80rpx;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
|
flex: 1;
|
||||||
.more-text {
|
.more-text {
|
||||||
font-size: 22rpx;
|
font-size: 22rpx;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
@@ -1493,25 +1564,26 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.approval-list {
|
.approval-list {
|
||||||
padding: 20rpx 30rpx;
|
padding: 10rpx 30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.approval-item {
|
.approval-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-bottom: 30rpx;
|
margin-bottom: 20rpx;
|
||||||
|
padding-top: 10rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.approval-line-container {
|
.approval-line-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-right: 20rpx;
|
margin-right: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.approval-line {
|
.approval-line {
|
||||||
width: 2rpx;
|
width: 2rpx;
|
||||||
background-color: #e5e5e5;
|
background-color: #8e8585;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
margin-top: 8rpx;
|
margin-top: 8rpx;
|
||||||
}
|
}
|
||||||
@@ -1523,15 +1595,20 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
// background-color: #fff;
|
||||||
|
border: 2rpx solid;
|
||||||
|
/* 状态点边框色 */
|
||||||
&.status-processing {
|
&.status-processing {
|
||||||
background-color: #E6F7FF;
|
background-color: #409EFF;
|
||||||
|
border-color: #409EFF;
|
||||||
}
|
}
|
||||||
&.status-pass {
|
&.status-pass {
|
||||||
background-color: #F0F9EB;
|
background-color: #67C23A;
|
||||||
|
border-color: #67C23A;
|
||||||
}
|
}
|
||||||
&.status-reject {
|
&.status-reject {
|
||||||
background-color: #FFF2F0;
|
background-color: #F56C6C;
|
||||||
|
border-color: #F56C6C;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1546,34 +1623,45 @@
|
|||||||
.task-header {
|
.task-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 16rpx;
|
justify-content: space-between;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
|
||||||
.task-name {
|
.task-name {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.status-tag {
|
.status-tag {
|
||||||
font-size: 24rpx;
|
display: flex;
|
||||||
padding: 4rpx 12rpx;
|
align-items: center;
|
||||||
border-radius: 4rpx;
|
font-size: 22rpx;
|
||||||
margin-left: 12rpx;
|
padding: 2rpx 8rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
margin-left: 12rpx;
|
||||||
|
|
||||||
&.tag-processing {
|
/* 状态对应的样式 */
|
||||||
background-color: #E6F7FF;
|
&.tag-processing {
|
||||||
color: #409EFF;
|
background-color: #E6F7FF;
|
||||||
}
|
color: #409EFF;
|
||||||
&.tag-pass {
|
}
|
||||||
background-color: #F0F9EB;
|
&.tag-pass {
|
||||||
color: #67C23A;
|
background-color: #F0F9EB;
|
||||||
}
|
color: #67C23A;
|
||||||
&.tag-reject {
|
}
|
||||||
background-color: #FFF2F0;
|
&.tag-reject {
|
||||||
color: #F56C6C;
|
background-color: #FFF2F0;
|
||||||
}
|
color: #F56C6C;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 状态标签内的时间 */
|
||||||
|
.status-time {
|
||||||
|
font-size: 20rpx;
|
||||||
|
margin-left: 8rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.info-row {
|
.info-row {
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #666;
|
color: #666;
|
||||||
@@ -1586,6 +1674,23 @@
|
|||||||
.info-value {
|
.info-value {
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
.info-value-tag {
|
||||||
|
background: #f4f4f5;
|
||||||
|
color: #a0a4a7;
|
||||||
|
padding: 2rpx 10rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
border: 10rpx;
|
||||||
|
}
|
||||||
|
.pending-tag {
|
||||||
|
display: inline-block;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
border: 1rpx solid #E5E5E5;
|
||||||
|
color: #666;
|
||||||
|
padding: 2rpx 8rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
font-size: 20rpx;
|
||||||
|
}
|
||||||
.dept-tag {
|
.dept-tag {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: #F5F7FA;
|
background-color: #F5F7FA;
|
||||||
@@ -1642,4 +1747,52 @@
|
|||||||
padding: 20rpx 30rpx;
|
padding: 20rpx 30rpx;
|
||||||
border-top: 1rpx solid #f0f0f0;
|
border-top: 1rpx solid #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.copy-dialog {
|
||||||
|
width: 90vw;
|
||||||
|
max-height: 80vh;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-content {
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item-user {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item {
|
||||||
|
margin-bottom: 24rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item.required .label::after {
|
||||||
|
content: '*';
|
||||||
|
color: #F56C6C;
|
||||||
|
margin-left: 4rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.value {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #666;
|
||||||
|
padding: 12rpx;
|
||||||
|
background: #f9fafc;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -8,28 +8,37 @@
|
|||||||
<mescroll-body ref="mescrollRef" @down="downCallback" :down="downOption" :sticky="false" @up="upCallback"
|
<mescroll-body ref="mescrollRef" @down="downCallback" :down="downOption" :sticky="false" @up="upCallback"
|
||||||
:up="upOption" :bottombar="false" @init="mescrollInit" :top="mescrollTop">
|
:up="upOption" :bottombar="false" @init="mescrollInit" :top="mescrollTop">
|
||||||
<view class="workFlow-list">
|
<view class="workFlow-list">
|
||||||
<view class="part" v-for="(item, i) in menuList" :key="i">
|
<view class="caption u-line-1">业务表单</view>
|
||||||
<view class="caption u-line-1" v-if="item?.children?.length">
|
<view class="u-flex u-flex-wrap item-container">
|
||||||
{{ item.fullName }}
|
<view class="item u-flex-col u-col-center"
|
||||||
</view>
|
v-for="(item, i) in menuList"
|
||||||
<view class="u-flex u-flex-wrap">
|
:key="item.id"
|
||||||
<view class="item u-flex-col u-col-center" v-for="(child, ii) in item.children" :key="ii"
|
@click="handelClick(item)">
|
||||||
@click="handelClick(child)">
|
<!-- 渲染图标 -->
|
||||||
<text class="u-font-40 item-icon" :class="child.icon"
|
<view class="item-icon" :style="{ background: item.iconBackground || '#008cff' }">
|
||||||
:style="{ background: child.iconBackground || '#008cff' }" />
|
<!-- 使用 iconify-icon 渲染 ep 系列图标 -->
|
||||||
<text class="u-font-24 u-line-1 item-text">{{child.fullName}}</text>
|
<iconify-icon
|
||||||
</view>
|
:icon="item.icon"
|
||||||
</view>
|
color="#ffffff"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
></iconify-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
<!-- 渲染名称 -->
|
||||||
|
<text class="u-font-24 u-line-1 item-text">{{item.name}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</mescroll-body>
|
</mescroll-body>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
getMenuList,
|
|
||||||
getChildList
|
getChildList
|
||||||
} from "@/api/apply/apply.js";
|
} from "@/api/apply/apply.js";
|
||||||
|
import {
|
||||||
|
getMenuData
|
||||||
|
} from "@/api/index/index";
|
||||||
import resources from "@/libs/resources.js";
|
import resources from "@/libs/resources.js";
|
||||||
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
|
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
|
||||||
import {
|
import {
|
||||||
@@ -91,84 +100,7 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handelClick(item) {
|
handelClick(item) {
|
||||||
if (item.type == 1) {
|
let url = "/pages/apply/dynamicModelList/index?config=" + this.jnpf.base64.encode(JSON.stringify(item))
|
||||||
getChildList(item.id).then(res => {
|
|
||||||
this.listChild = res.data || []
|
|
||||||
this.handleProperty(this.listChild)
|
|
||||||
this.$nextTick(() => {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/pages/apply/catalog/index?config=" +
|
|
||||||
this.jnpf.base64.encode(JSON.stringify(this.listChild[0])),
|
|
||||||
fail: (err) => {
|
|
||||||
this.$u.toast("暂无此页面");
|
|
||||||
},
|
|
||||||
});
|
|
||||||
})
|
|
||||||
})
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let url = ''
|
|
||||||
// 2-页面 11-回传表单
|
|
||||||
if (item.type == 2 || item.type == 11) {
|
|
||||||
if (!item.pageAddress) {
|
|
||||||
this.$u.toast("暂无此页面");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
url = item.pageAddress + "?menuId=" + item.id + "&fullName=" + item.fullName
|
|
||||||
}
|
|
||||||
// 3-在线表单 9-流程
|
|
||||||
if (item.type == 3 || item.type == 9) {
|
|
||||||
if (!item.moduleId) {
|
|
||||||
this.$u.toast("暂无此页面");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
url = "/pages/apply/dynamicModel/index?config=" + this.jnpf.base64.encode(JSON.stringify(item))
|
|
||||||
}
|
|
||||||
// 外链
|
|
||||||
if (item.type == 7) {
|
|
||||||
if (!item.pageAddress) {
|
|
||||||
this.$u.toast("暂无此页面");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
url = "/pages/apply/externalLink/index?url=" + encodeURIComponent(item.pageAddress) + "&fullName=" +
|
|
||||||
item.fullName + "&type=" + item.type
|
|
||||||
}
|
|
||||||
// 报表(原)
|
|
||||||
if (item.type == 5) {
|
|
||||||
if (!item.moduleId) {
|
|
||||||
this.$u.toast("暂无此页面");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
userInfo = uni.getStorageSync('userInfo') || {}
|
|
||||||
const appCode = userInfo.systemCode
|
|
||||||
const urlPre = encodeURIComponent(
|
|
||||||
`${this.report}/preview.html?id=${item.moduleId}&token=${this.token}}&appCode=${appCode}&page=1&from=menu`
|
|
||||||
)
|
|
||||||
url = "/pages/apply/externalLink/index?url=" + urlPre + "&fullName=" + item.fullName + "&type=" +
|
|
||||||
item.type
|
|
||||||
}
|
|
||||||
// 报表
|
|
||||||
if (item.type == 10) {
|
|
||||||
if (!item.moduleId) {
|
|
||||||
this.$u.toast("暂无此页面");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const urlPre = encodeURIComponent(
|
|
||||||
`${this.pcURL}/reportPreview?id=${item.moduleId}&token=${this.token}&from=app`
|
|
||||||
);
|
|
||||||
url = "/pages/apply/externalLink/index?url=" + urlPre + "&fullName=" + item.fullName + "&type=" +
|
|
||||||
item.type
|
|
||||||
}
|
|
||||||
// 门户
|
|
||||||
if (item.type == 8) {
|
|
||||||
if (!item.moduleId) {
|
|
||||||
this.$u.toast("暂无此页面");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
url = "/pages/portal/scanPortal/index?id=" + item.moduleId + "&portalType=1&fullName=" +
|
|
||||||
item.fullName
|
|
||||||
}
|
|
||||||
if (!url) return;
|
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url,
|
url,
|
||||||
fail: () => {
|
fail: () => {
|
||||||
@@ -184,13 +116,13 @@
|
|||||||
title: '正在加载',
|
title: '正在加载',
|
||||||
mask: true
|
mask: true
|
||||||
})
|
})
|
||||||
getMenuList(query)
|
getMenuData()
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
let list = res.data.list || [];
|
let list =res?.data || [];
|
||||||
this.mescroll.endSuccess(list.length);
|
this.mescroll.endSuccess(list.length);
|
||||||
this.list = list.filter(o => o.children && o.children.length)
|
this.menuList = list;
|
||||||
this.menuList = this.list;
|
console.log(this.menuList,'menuList---')
|
||||||
this.handleProperty(this.list)
|
// this.handleProperty(this.list)
|
||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
this.key = +new Date();
|
this.key = +new Date();
|
||||||
this.mescroll.endSuccess(this.menuList.length, false);
|
this.mescroll.endSuccess(this.menuList.length, false);
|
||||||
@@ -338,4 +270,54 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.menu-v {
|
||||||
|
// 原有样式...
|
||||||
|
|
||||||
|
.workFlow-list {
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 20rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
|
// 分类标题样式
|
||||||
|
.caption {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #333;
|
||||||
|
padding: 0 20rpx 20rpx;
|
||||||
|
border-bottom: 1px solid #f5f5f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项容器(让项横向排列)
|
||||||
|
.item-container {
|
||||||
|
padding: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 单个项的样式
|
||||||
|
.item {
|
||||||
|
width: 25%; // 一行显示4个(可根据需求调整)
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
// 图标样式
|
||||||
|
.item-icon {
|
||||||
|
width: 88rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
border-radius: 20rpx; // 圆角更美观
|
||||||
|
color: #fff;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文字样式
|
||||||
|
.item-text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #333;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
BIN
pages/index/img/dun.png
Normal file
BIN
pages/index/img/dun.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 996 KiB |
@@ -1,4 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<view class="custom-nav-bar">
|
||||||
|
<!-- 左侧图标 + 标题 -->
|
||||||
|
<view class="nav-left">
|
||||||
|
<image class="nav-icon" src="./img/dun.png" mode="widthFix"></image>
|
||||||
|
<text class="nav-title">{{'综合监控系统'}}</text>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="nav-right">
|
||||||
|
<image class="nav-avatar" :src="userInfo.avatar || '/static/image/avatar-default.png'" mode="widthFix"></image>
|
||||||
|
<text class="nav-dot" v-if="count > 0">●</text>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
<view class="index_v">
|
<view class="index_v">
|
||||||
<!-- <u-sticky>
|
<!-- <u-sticky>
|
||||||
<view class="head-tabs u-flex">
|
<view class="head-tabs u-flex">
|
||||||
@@ -40,7 +51,7 @@
|
|||||||
<view class="todo-title">
|
<view class="todo-title">
|
||||||
<view class="title-left">
|
<view class="title-left">
|
||||||
<view >待处理事项</view>
|
<view >待处理事项</view>
|
||||||
<u-badge type="error" :count="count" :absolute="true" :offset="offset" />
|
<!-- <u-badge type="error" :count="count" :absolute="true" :offset="offset" /> -->
|
||||||
</view>
|
</view>
|
||||||
<view class="title-right" @click="openToDoPage">
|
<view class="title-right" @click="openToDoPage">
|
||||||
工作信息
|
工作信息
|
||||||
@@ -64,7 +75,7 @@
|
|||||||
<view class="todo-header">
|
<view class="todo-header">
|
||||||
<view class="todo-code">
|
<view class="todo-code">
|
||||||
<text class="code-label">单号</text>
|
<text class="code-label">单号</text>
|
||||||
<text class="code-value">{{item.businessInfo.billNo}}</text>
|
<text class="code-value">{{item.businessInfo && item.businessInfo.billNo}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 信息列表 -->
|
<!-- 信息列表 -->
|
||||||
@@ -115,6 +126,9 @@
|
|||||||
updatePassword,
|
updatePassword,
|
||||||
updatePasswordMessage
|
updatePasswordMessage
|
||||||
} from '@/api/common.js'
|
} from '@/api/common.js'
|
||||||
|
import {
|
||||||
|
getProcessBusinessInfo
|
||||||
|
} from '@/api/apply/visualDev'
|
||||||
import chat from '@/libs/chat'
|
import chat from '@/libs/chat'
|
||||||
import CommonPane from '@/components/CommonPane'
|
import CommonPane from '@/components/CommonPane'
|
||||||
import CommonPaneSys from '@/components/CommonPane/indexSystem'
|
import CommonPaneSys from '@/components/CommonPane/indexSystem'
|
||||||
@@ -387,9 +401,15 @@
|
|||||||
pageSize: 3
|
pageSize: 3
|
||||||
}
|
}
|
||||||
getDonePage(params).then(res=>{
|
getDonePage(params).then(res=>{
|
||||||
console.log(res,'res-------')
|
const {code,data} = res
|
||||||
this.count = res.data.total
|
if(code == 0){
|
||||||
this.todoList = res.data.list || []
|
this.count = data.total
|
||||||
|
uni.setTabBarBadge({
|
||||||
|
index: 1, // 待办任务的tab索引
|
||||||
|
text: res.data.total.toString() // 角标数字
|
||||||
|
});
|
||||||
|
this.todoList = data.list || []
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//更多按钮
|
//更多按钮
|
||||||
@@ -406,7 +426,8 @@
|
|||||||
},
|
},
|
||||||
// 跳转待办
|
// 跳转待办
|
||||||
openToDoPage() {
|
openToDoPage() {
|
||||||
uni.navigateTo({
|
uni.setStorageSync('fromNonTabBar', true);
|
||||||
|
uni.switchTab({
|
||||||
url: '/pages/workFlow/flowTodo/index',
|
url: '/pages/workFlow/flowTodo/index',
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -419,17 +440,35 @@
|
|||||||
},
|
},
|
||||||
// 待处理事项跳转详情
|
// 待处理事项跳转详情
|
||||||
goDetail(item) {
|
goDetail(item) {
|
||||||
console.log(item,'item----------')
|
const {processInstance} = item
|
||||||
|
getProcessBusinessInfo(processInstance.id).then(res=>{
|
||||||
|
if(res.code == 0){
|
||||||
|
const {dbformId,businessId} = res.data
|
||||||
|
// this.processBusinessInfo = res.data || {}
|
||||||
|
const config = {
|
||||||
|
modelId: dbformId,
|
||||||
|
id: businessId,
|
||||||
|
name: processInstance.name,
|
||||||
|
btnType: 'btn_process',
|
||||||
|
current: 2
|
||||||
|
}
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/apply/dynamicModelList/form?config=' +
|
||||||
|
this.jnpf.base64.encode(JSON.stringify(config))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
const config = {
|
const config = {
|
||||||
opType: item.opType,
|
opType: item.opType,
|
||||||
operatorId: item.id,
|
operatorId: item.id,
|
||||||
category: '1',
|
category: '1',
|
||||||
...item
|
...item
|
||||||
}
|
}
|
||||||
uni.navigateTo({
|
// /pages/apply/dynamicModelList/form
|
||||||
url: '/pages/workFlow/flowBefore/index?config=' +
|
// uni.navigateTo({
|
||||||
this.jnpf.base64.encode(JSON.stringify(config))
|
// url: '/pages/workFlow/flowBefore/index?config=' +
|
||||||
})
|
// this.jnpf.base64.encode(JSON.stringify(config))
|
||||||
|
// })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -440,8 +479,62 @@
|
|||||||
background-color: #f0f2f6;
|
background-color: #f0f2f6;
|
||||||
padding-bottom: 20rpx;
|
padding-bottom: 20rpx;
|
||||||
}
|
}
|
||||||
|
.custom-nav-bar {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 999;
|
||||||
|
height: 44px;
|
||||||
|
background: #fff;
|
||||||
|
border-bottom: 1px solid #f0f2f6;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.nav-left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center; // 图标和标题垂直居中
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-icon {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #303133;
|
||||||
|
// 标题左对齐(flex布局默认左排列)
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-right {
|
||||||
|
margin-left: auto; // 右侧元素靠右
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-avatar {
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-dot {
|
||||||
|
position: absolute;
|
||||||
|
top: -2px;
|
||||||
|
right: -2px;
|
||||||
|
color: #f56c6c;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.index_v {
|
.index_v {
|
||||||
|
padding-top: 65rpx;
|
||||||
.head-tabs {
|
.head-tabs {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -164,11 +164,81 @@
|
|||||||
if (!chatStore.getSocket) chat.initSocket()
|
if (!chatStore.getSocket) chat.initSocket()
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
UserSettingInfo().then(res => {
|
// UserSettingInfo().then(res => {
|
||||||
this.baseInfo = res.data || {}
|
// this.baseInfo = res.data || {}
|
||||||
this.avatarSrc = this.baseURL2 + this.baseInfo.avatar
|
// this.avatarSrc = this.baseURL2 + this.baseInfo.avatar
|
||||||
this.loading = true
|
// this.loading = true
|
||||||
})
|
// })
|
||||||
|
this.baseInfo = {
|
||||||
|
"id": "777911634713641349",
|
||||||
|
"account": "chenl",
|
||||||
|
"realName": "默认",
|
||||||
|
"organize": "引迈信息技术有限公司/总裁办",
|
||||||
|
"company": null,
|
||||||
|
"position": "总裁",
|
||||||
|
"manager": null,
|
||||||
|
"roleId": "",
|
||||||
|
"creatorTime": 1767604989000,
|
||||||
|
"prevLogTime": 1768896697000,
|
||||||
|
"signature": null,
|
||||||
|
"gender": "1",
|
||||||
|
"nation": null,
|
||||||
|
"nativePlace": null,
|
||||||
|
"entryDate": null,
|
||||||
|
"certificatesType": null,
|
||||||
|
"certificatesNumber": null,
|
||||||
|
"education": null,
|
||||||
|
"birthday": null,
|
||||||
|
"telePhone": null,
|
||||||
|
"landline": null,
|
||||||
|
"mobilePhone": null,
|
||||||
|
"email": null,
|
||||||
|
"urgentContacts": null,
|
||||||
|
"urgentTelePhone": null,
|
||||||
|
"postalAddress": null,
|
||||||
|
"avatar": "/api/file/Image/userAvatar/001.png",
|
||||||
|
"theme": "W-001",
|
||||||
|
"language": "zh-CN",
|
||||||
|
"ranks": null,
|
||||||
|
"isTenant": false,
|
||||||
|
"currentTenantInfo": null,
|
||||||
|
"preferenceJson": null,
|
||||||
|
"propertyJson": null,
|
||||||
|
"pcOnlineModelList": [],
|
||||||
|
"appOnlineModelList": [
|
||||||
|
{
|
||||||
|
"userId": "777911634713641349",
|
||||||
|
"userAccount": null,
|
||||||
|
"userName": "陈力/chenl",
|
||||||
|
"loginTime": "2026-01-20 16:11",
|
||||||
|
"loginIPAddress": "61.183.89.14",
|
||||||
|
"loginSystem": "iPhone 18_5",
|
||||||
|
"tenantId": "",
|
||||||
|
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiI3Nzc5MTE2MzQ3MTM2NDEzNDkiLCJyblN0ciI6IkdWczEzRTRBNWRkQU4zMEVIanM3d0JXOFlSQ1h5ZUs5IiwidXNlcl9pZCI6Ijc3NzkxMTYzNDcxMzY0MTM0OSIsInVzZXJfbmFtZSI6ImNoZW5sIiwic2luZ2xlTG9naW4iOjIsImV4cCI6MTc2ODk1MDY5NjYyNywidG9rZW4iOiJsb2dpbl90b2tlbl83ODMzMjk0NTA3OTUyMDQ2NzcifQ.85PXC7GbqgLEuoEcmgeuBBXyFCfgLJX-mq8_5a-cr8Y",
|
||||||
|
"device": "APP",
|
||||||
|
"organize": null,
|
||||||
|
"loginBrowser": "Safari 18.5",
|
||||||
|
"loginAddress": "湖北省武汉市 电信",
|
||||||
|
"isCurrent": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userId": "777911634713641349",
|
||||||
|
"userAccount": null,
|
||||||
|
"userName": "陈力/chenl",
|
||||||
|
"loginTime": "2026-01-20 09:59",
|
||||||
|
"loginIPAddress": "61.183.89.14",
|
||||||
|
"loginSystem": "iPhone 18_5",
|
||||||
|
"tenantId": "",
|
||||||
|
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiI3Nzc5MTE2MzQ3MTM2NDEzNDkiLCJyblN0ciI6Ik0yVDI5T2o3cEd0bTZiZkN1aXBYUklrR3BUaTZrT0FxIiwidXNlcl9pZCI6Ijc3NzkxMTYzNDcxMzY0MTM0OSIsInVzZXJfbmFtZSI6ImNoZW5sIiwic2luZ2xlTG9naW4iOjIsImV4cCI6MTc2ODkyODM5NDcyNywidG9rZW4iOiJsb2dpbl90b2tlbl83ODMyMzU5MDk4NDY4MjcwNzcifQ.wRKZT-ZEYc4Tao8k7LI9OPlPvnBhLFrzWdQsAljQIRA",
|
||||||
|
"device": "APP",
|
||||||
|
"organize": null,
|
||||||
|
"loginBrowser": "Safari 18.5",
|
||||||
|
"loginAddress": "湖北省武汉市 电信",
|
||||||
|
"isCurrent": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
this.loading = true
|
||||||
uni.setNavigationBarTitle({
|
uni.setNavigationBarTitle({
|
||||||
title: "我的"
|
title: "我的"
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -31,11 +31,11 @@
|
|||||||
onShow() {
|
onShow() {
|
||||||
if (this.needRefresh) {
|
if (this.needRefresh) {
|
||||||
this.needRefresh = false;
|
this.needRefresh = false;
|
||||||
this.init();
|
// this.init();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.init()
|
// this.init()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init() {
|
init() {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<view class='common-lable'>
|
<view class='common-lable'>
|
||||||
单号
|
单号
|
||||||
</view>
|
</view>
|
||||||
<text class="title u-font-28 u-line-1">{{item.businessInfo.billNo}}</text>
|
<text class="title u-font-28 u-line-1">{{item.businessInfo && item.businessInfo.billNo}}</text>
|
||||||
</view>
|
</view>
|
||||||
<text class="title u-line-1 u-font-24">单据类型:{{item.name || item.processInstanceName}}<text
|
<text class="title u-line-1 u-font-24">单据类型:{{item.name || item.processInstanceName}}<text
|
||||||
class="titInner">{{item.thisStep ? item.thisStep : ''}}</text></text>
|
class="titInner">{{item.thisStep ? item.thisStep : ''}}</text></text>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
class="titInner">{{item.createTime?$u.timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss'):''}}</text></text>
|
class="titInner">{{item.createTime?$u.timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss'):''}}</text></text>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="category == 2" class="item-right">
|
<view v-if="category == 2" class="item-right">
|
||||||
<image v-if="item.result == 1" src="./img/jihuo.png" mode="widthFix" class="item-right-img" />
|
<image v-if="item.suspensionState == 1" src="./img/jihuo.png" mode="widthFix" class="item-right-img" />
|
||||||
<image v-else src="./img/wanc.png" mode="widthFix" class="item-right-img" />
|
<image v-else src="./img/wanc.png" mode="widthFix" class="item-right-img" />
|
||||||
</view>
|
</view>
|
||||||
<view v-else class="item-right">
|
<view v-else class="item-right">
|
||||||
@@ -41,6 +41,9 @@
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
getProcessBusinessInfo
|
||||||
|
} from '@/api/apply/visualDev'
|
||||||
import {
|
import {
|
||||||
delFlowLaunch
|
delFlowLaunch
|
||||||
} from '@/api/workFlow/template'
|
} from '@/api/workFlow/template'
|
||||||
@@ -86,15 +89,24 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
goDetail(item) {
|
goDetail(item) {
|
||||||
const config = {
|
const {processInstance,processDefinitionId} = item
|
||||||
opType: item.opType,
|
const id = !!processDefinitionId ? item.id :processInstance.id
|
||||||
operatorId: item.id,
|
const name = !!processDefinitionId ? item.name : processInstance.name
|
||||||
category: this.category,
|
getProcessBusinessInfo(id).then(res=>{
|
||||||
...item
|
if(res.code == 0){
|
||||||
}
|
const {dbformId,businessId} = res.data
|
||||||
uni.navigateTo({
|
const config = {
|
||||||
url: '/pages/workFlow/flowBefore/index?config=' +
|
modelId: dbformId,
|
||||||
this.jnpf.base64.encode(JSON.stringify(config))
|
id: businessId,
|
||||||
|
name: name,
|
||||||
|
btnType: 'btn_process',
|
||||||
|
current: this.category
|
||||||
|
}
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/apply/dynamicModelList/form?config=' +
|
||||||
|
this.jnpf.base64.encode(JSON.stringify(config))
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleClick(data) {
|
handleClick(data) {
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
|
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
|
||||||
import FlowMixin from "./FlowMixin.js";
|
import FlowMixin from "./FlowMixin.js";
|
||||||
import flowlist from './flowList.vue'
|
import flowlist from './flowList.vue'
|
||||||
|
import {
|
||||||
|
useUserStore
|
||||||
|
} from '@/store/modules/user'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
flowlist
|
flowlist
|
||||||
@@ -63,6 +66,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
|
const fromNonTabBar = uni.getStorageSync('fromNonTabBar');
|
||||||
|
console.log(fromNonTabBar,'fromNonTabBar---')
|
||||||
|
if(!fromNonTabBar){
|
||||||
|
this.current = 1
|
||||||
|
}else {
|
||||||
|
this.current = 0
|
||||||
|
}
|
||||||
|
uni.removeStorageSync('fromNonTabBar');
|
||||||
uni.$off('operate')
|
uni.$off('operate')
|
||||||
uni.$on('refresh', () => {
|
uni.$on('refresh', () => {
|
||||||
this.list = [];
|
this.list = [];
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
this.setting = data
|
this.setting = data
|
||||||
this.formConf = data.formConf ? JSON.parse(data.formConf) : {}
|
this.formConf = data.formConf ? JSON.parse(data.formConf) : {}
|
||||||
console.log(this.formConf,'formConf112')
|
console.log(this.formConf,'formConf112')
|
||||||
|
console.log(data,'data112')
|
||||||
this.dataForm.id = data.id || null;
|
this.dataForm.id = data.id || null;
|
||||||
this.dataForm.flowId = data.flowId;
|
this.dataForm.flowId = data.flowId;
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
|||||||
@@ -9,19 +9,28 @@ import store from '../index'
|
|||||||
import permission from '@/libs/permission'
|
import permission from '@/libs/permission'
|
||||||
|
|
||||||
export const useUserStore = defineStore({
|
export const useUserStore = defineStore({
|
||||||
id: ' user',
|
id: 'user',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
token: "",
|
token: "",
|
||||||
userInfo: {},
|
userInfo: {},
|
||||||
menuList: [],
|
menuList: [],
|
||||||
tenantId: ''
|
tenantId: '',
|
||||||
|
current: 0
|
||||||
}),
|
}),
|
||||||
getters: {
|
getters: {
|
||||||
getToken() {
|
getToken() {
|
||||||
return this.token
|
return this.token
|
||||||
},
|
},
|
||||||
|
getCurrent() {
|
||||||
|
return this.current
|
||||||
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
setCurrent(current) {
|
||||||
|
this.current = current
|
||||||
|
console.log(current,'current--')
|
||||||
|
uni.setStorageSync('current', current)
|
||||||
|
},
|
||||||
setTenantId(tenantId) {
|
setTenantId(tenantId) {
|
||||||
console.log(tenantId,'tenantId---')
|
console.log(tenantId,'tenantId---')
|
||||||
this.tenantId = tenantId
|
this.tenantId = tenantId
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"hash": "6b0aadf4",
|
"hash": "546c637a",
|
||||||
"configHash": "9cd3108c",
|
"configHash": "9b3d750a",
|
||||||
"lockfileHash": "e3b0c442",
|
"lockfileHash": "e3b0c442",
|
||||||
"browserHash": "4216b578",
|
"browserHash": "68bd3506",
|
||||||
"optimized": {
|
"optimized": {
|
||||||
"crypto-js": {
|
"crypto-js": {
|
||||||
"src": "../../../../../node_modules/crypto-js/index.js",
|
"src": "../../../../../node_modules/crypto-js/index.js",
|
||||||
"file": "crypto-js.js",
|
"file": "crypto-js.js",
|
||||||
"fileHash": "d697042e",
|
"fileHash": "209eb0b3",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
140
unpackage/dist/cache/.vite/deps/crypto-js.js
vendored
140
unpackage/dist/cache/.vite/deps/crypto-js.js
vendored
@@ -23,9 +23,9 @@ var require_crypto = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/core.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/core.js
|
||||||
var require_core = __commonJS({
|
var require_core = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/core.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/core.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory();
|
module.exports = exports = factory();
|
||||||
@@ -631,9 +631,9 @@ var require_core = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/x64-core.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/x64-core.js
|
||||||
var require_x64_core = __commonJS({
|
var require_x64_core = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/x64-core.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/x64-core.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -888,9 +888,9 @@ var require_x64_core = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/lib-typedarrays.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/lib-typedarrays.js
|
||||||
var require_lib_typedarrays = __commonJS({
|
var require_lib_typedarrays = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/lib-typedarrays.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/lib-typedarrays.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -933,9 +933,9 @@ var require_lib_typedarrays = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/enc-utf16.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/enc-utf16.js
|
||||||
var require_enc_utf16 = __commonJS({
|
var require_enc_utf16 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/enc-utf16.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/enc-utf16.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -1051,9 +1051,9 @@ var require_enc_utf16 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/enc-base64.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/enc-base64.js
|
||||||
var require_enc_base64 = __commonJS({
|
var require_enc_base64 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/enc-base64.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/enc-base64.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -1159,9 +1159,9 @@ var require_enc_base64 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/enc-base64url.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/enc-base64url.js
|
||||||
var require_enc_base64url = __commonJS({
|
var require_enc_base64url = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/enc-base64url.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/enc-base64url.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -1272,9 +1272,9 @@ var require_enc_base64url = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/md5.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/md5.js
|
||||||
var require_md5 = __commonJS({
|
var require_md5 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/md5.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/md5.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -1451,9 +1451,9 @@ var require_md5 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/sha1.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha1.js
|
||||||
var require_sha1 = __commonJS({
|
var require_sha1 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/sha1.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha1.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -1542,9 +1542,9 @@ var require_sha1 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/sha256.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha256.js
|
||||||
var require_sha256 = __commonJS({
|
var require_sha256 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/sha256.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha256.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -1663,9 +1663,9 @@ var require_sha256 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/sha224.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha224.js
|
||||||
var require_sha224 = __commonJS({
|
var require_sha224 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/sha224.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha224.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_sha256());
|
module.exports = exports = factory(require_core(), require_sha256());
|
||||||
@@ -1708,9 +1708,9 @@ var require_sha224 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/sha512.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha512.js
|
||||||
var require_sha512 = __commonJS({
|
var require_sha512 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/sha512.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha512.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_x64_core());
|
module.exports = exports = factory(require_core(), require_x64_core());
|
||||||
@@ -1990,9 +1990,9 @@ var require_sha512 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/sha384.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha384.js
|
||||||
var require_sha384 = __commonJS({
|
var require_sha384 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/sha384.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha384.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_x64_core(), require_sha512());
|
module.exports = exports = factory(require_core(), require_x64_core(), require_sha512());
|
||||||
@@ -2036,9 +2036,9 @@ var require_sha384 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/sha3.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha3.js
|
||||||
var require_sha3 = __commonJS({
|
var require_sha3 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/sha3.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/sha3.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_x64_core());
|
module.exports = exports = factory(require_core(), require_x64_core());
|
||||||
@@ -2238,9 +2238,9 @@ var require_sha3 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/ripemd160.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/ripemd160.js
|
||||||
var require_ripemd160 = __commonJS({
|
var require_ripemd160 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/ripemd160.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/ripemd160.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -2709,9 +2709,9 @@ var require_ripemd160 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/hmac.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/hmac.js
|
||||||
var require_hmac = __commonJS({
|
var require_hmac = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/hmac.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/hmac.js"(exports, module) {
|
||||||
(function(root, factory) {
|
(function(root, factory) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core());
|
module.exports = exports = factory(require_core());
|
||||||
@@ -2816,9 +2816,9 @@ var require_hmac = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/pbkdf2.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/pbkdf2.js
|
||||||
var require_pbkdf2 = __commonJS({
|
var require_pbkdf2 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/pbkdf2.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/pbkdf2.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_sha1(), require_hmac());
|
module.exports = exports = factory(require_core(), require_sha1(), require_hmac());
|
||||||
@@ -2914,9 +2914,9 @@ var require_pbkdf2 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/evpkdf.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/evpkdf.js
|
||||||
var require_evpkdf = __commonJS({
|
var require_evpkdf = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/evpkdf.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/evpkdf.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_sha1(), require_hmac());
|
module.exports = exports = factory(require_core(), require_sha1(), require_hmac());
|
||||||
@@ -3005,9 +3005,9 @@ var require_evpkdf = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/cipher-core.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/cipher-core.js
|
||||||
var require_cipher_core = __commonJS({
|
var require_cipher_core = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/cipher-core.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/cipher-core.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_evpkdf());
|
module.exports = exports = factory(require_core(), require_evpkdf());
|
||||||
@@ -3645,9 +3645,9 @@ var require_cipher_core = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/mode-cfb.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-cfb.js
|
||||||
var require_mode_cfb = __commonJS({
|
var require_mode_cfb = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/mode-cfb.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-cfb.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3697,9 +3697,9 @@ var require_mode_cfb = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/mode-ctr.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ctr.js
|
||||||
var require_mode_ctr = __commonJS({
|
var require_mode_ctr = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/mode-ctr.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ctr.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3737,9 +3737,9 @@ var require_mode_ctr = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/mode-ctr-gladman.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ctr-gladman.js
|
||||||
var require_mode_ctr_gladman = __commonJS({
|
var require_mode_ctr_gladman = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/mode-ctr-gladman.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ctr-gladman.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3812,9 +3812,9 @@ var require_mode_ctr_gladman = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/mode-ofb.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ofb.js
|
||||||
var require_mode_ofb = __commonJS({
|
var require_mode_ofb = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/mode-ofb.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ofb.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3850,9 +3850,9 @@ var require_mode_ofb = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/mode-ecb.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ecb.js
|
||||||
var require_mode_ecb = __commonJS({
|
var require_mode_ecb = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/mode-ecb.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/mode-ecb.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3881,9 +3881,9 @@ var require_mode_ecb = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/pad-ansix923.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-ansix923.js
|
||||||
var require_pad_ansix923 = __commonJS({
|
var require_pad_ansix923 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/pad-ansix923.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-ansix923.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3913,9 +3913,9 @@ var require_pad_ansix923 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/pad-iso10126.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-iso10126.js
|
||||||
var require_pad_iso10126 = __commonJS({
|
var require_pad_iso10126 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/pad-iso10126.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-iso10126.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3941,9 +3941,9 @@ var require_pad_iso10126 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/pad-iso97971.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-iso97971.js
|
||||||
var require_pad_iso97971 = __commonJS({
|
var require_pad_iso97971 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/pad-iso97971.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-iso97971.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -3968,9 +3968,9 @@ var require_pad_iso97971 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/pad-zeropadding.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-zeropadding.js
|
||||||
var require_pad_zeropadding = __commonJS({
|
var require_pad_zeropadding = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/pad-zeropadding.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-zeropadding.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -4002,9 +4002,9 @@ var require_pad_zeropadding = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/pad-nopadding.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-nopadding.js
|
||||||
var require_pad_nopadding = __commonJS({
|
var require_pad_nopadding = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/pad-nopadding.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/pad-nopadding.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -4025,9 +4025,9 @@ var require_pad_nopadding = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/format-hex.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/format-hex.js
|
||||||
var require_format_hex = __commonJS({
|
var require_format_hex = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/format-hex.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/format-hex.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_cipher_core());
|
||||||
@@ -4085,9 +4085,9 @@ var require_format_hex = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/aes.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/aes.js
|
||||||
var require_aes = __commonJS({
|
var require_aes = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/aes.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/aes.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
||||||
@@ -4239,9 +4239,9 @@ var require_aes = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/tripledes.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/tripledes.js
|
||||||
var require_tripledes = __commonJS({
|
var require_tripledes = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/tripledes.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/tripledes.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
||||||
@@ -5020,9 +5020,9 @@ var require_tripledes = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/rc4.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/rc4.js
|
||||||
var require_rc4 = __commonJS({
|
var require_rc4 = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/rc4.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/rc4.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
||||||
@@ -5103,9 +5103,9 @@ var require_rc4 = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/rabbit.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/rabbit.js
|
||||||
var require_rabbit = __commonJS({
|
var require_rabbit = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/rabbit.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/rabbit.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
||||||
@@ -5232,9 +5232,9 @@ var require_rabbit = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/rabbit-legacy.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/rabbit-legacy.js
|
||||||
var require_rabbit_legacy = __commonJS({
|
var require_rabbit_legacy = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/rabbit-legacy.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/rabbit-legacy.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
|
||||||
@@ -5358,9 +5358,9 @@ var require_rabbit_legacy = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// E:/web/jnpf_app/node_modules/crypto-js/index.js
|
// E:/web/ruantong/jnpf_app/node_modules/crypto-js/index.js
|
||||||
var require_crypto_js = __commonJS({
|
var require_crypto_js = __commonJS({
|
||||||
"E:/web/jnpf_app/node_modules/crypto-js/index.js"(exports, module) {
|
"E:/web/ruantong/jnpf_app/node_modules/crypto-js/index.js"(exports, module) {
|
||||||
(function(root, factory, undef) {
|
(function(root, factory, undef) {
|
||||||
if (typeof exports === "object") {
|
if (typeof exports === "object") {
|
||||||
module.exports = exports = factory(require_core(), require_x64_core(), require_lib_typedarrays(), require_enc_utf16(), require_enc_base64(), require_enc_base64url(), require_md5(), require_sha1(), require_sha256(), require_sha224(), require_sha512(), require_sha384(), require_sha3(), require_ripemd160(), require_hmac(), require_pbkdf2(), require_evpkdf(), require_cipher_core(), require_mode_cfb(), require_mode_ctr(), require_mode_ctr_gladman(), require_mode_ofb(), require_mode_ecb(), require_pad_ansix923(), require_pad_iso10126(), require_pad_iso97971(), require_pad_zeropadding(), require_pad_nopadding(), require_format_hex(), require_aes(), require_tripledes(), require_rc4(), require_rabbit(), require_rabbit_legacy());
|
module.exports = exports = factory(require_core(), require_x64_core(), require_lib_typedarrays(), require_enc_utf16(), require_enc_base64(), require_enc_base64url(), require_md5(), require_sha1(), require_sha256(), require_sha224(), require_sha512(), require_sha384(), require_sha3(), require_ripemd160(), require_hmac(), require_pbkdf2(), require_evpkdf(), require_cipher_core(), require_mode_cfb(), require_mode_ctr(), require_mode_ctr_gladman(), require_mode_ofb(), require_mode_ecb(), require_pad_ansix923(), require_pad_iso10126(), require_pad_iso97971(), require_pad_zeropadding(), require_pad_nopadding(), require_format_hex(), require_aes(), require_tripledes(), require_rc4(), require_rabbit(), require_rabbit_legacy());
|
||||||
|
|||||||
Reference in New Issue
Block a user