xy 1 year ago
parent 6971cc0b9e
commit 784b18d6a5

@ -1,9 +1,12 @@
<template>
<div>
<vxe-modal
:width="840"
:height="600"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
show-zoom
resize
transfer
esc-closable
:fullscreen="$store.getters.device === 'mobile'"
:z-index="zIndex"
v-model="showModal"
@ -23,10 +26,12 @@
<script>
import { PopupManager } from "element-ui/lib/utils/popup";
import {defaultModalSize} from "@/settings";
export default {
data() {
return {
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
showModal:false,
codeUri: "",

@ -34,9 +34,10 @@ if (process.env.NODE_ENV === 'production') {
Vue.use(ElementUI)
// vxe-table
import { VxeUI, VxeUpload } from 'vxe-pc-ui'
import { VxeUI, VxeUpload, VxeDatePicker } from 'vxe-pc-ui'
import 'vxe-pc-ui/lib/style.css'
Vue.use(VxeUpload)
Vue.use(VxeDatePicker)
import VxeTable from 'vxe-table'
import "vxe-table/styles/index.scss"
import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx'

@ -14,4 +14,10 @@ module.exports = {
*/
sidebarLogo: false,
uploadSize: 1024 * 1024 * 20,
defaultModalSize: {
width: '76vw',
height: '80vh',
sWidth: '64vw',
sHeight: '72vh',
}
}

@ -7,7 +7,7 @@ import { uploadSize } from "@/settings";
import axios from 'axios';
import { flowList } from "@/api/flow";
/**
* @param {String} device 'desktop' or 'mobile'
* @param {String} device 'desktop' | 'mobile'
* @param {Object} info field参数
* @param {CreateElement} h
* @param {Object} row 子表单的row
@ -949,6 +949,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
value: row ? row[info.name] : this.form[info.name],
clearable: true,
placeholder: info.help_text,
rules: this.rules[info.name]
},
attrs: {
placeholder: info.help_text,
@ -971,6 +972,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
value: row ? row[info.name] : this.form[info.name],
clearable: true,
placeholder: info.help_text,
rules: this.rules[info.name]
},
attrs: {
placeholder: info.help_text,
@ -994,6 +996,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
value: row ? row[info.name] : this.form[info.name],
clearable: true,
placeholder: info.help_text,
rules: this.rules[info.name]
},
attrs: {
placeholder: info.help_text,
@ -1017,6 +1020,8 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
value: row ? row[info.name] : this.form[info.name],
clearable: true,
placeholder: info.help_text,
rules: this.rules[info.name],
required: !!this.rules[info.name]?.find(j => j.required)
},
on: {
click: (_) => {
@ -1042,6 +1047,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
value: typeof findSelect === "object" ? findSelect.name : findSelect,
clearable: true,
placeholder: info.help_text,
rules: this.rules[info.name]
},
on: {
click: (_) => {
@ -1072,6 +1078,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
value: (findChoice instanceof Array) ? (findChoice.map(i => typeof i === "object" ? i.name : i).toString()) : (typeof findChoice === "object" ? findChoice.name : findChoice),
clearable: true,
placeholder: info.help_text,
rules: this.rules[info.name]
},
on: {
click: (_) => {
@ -1092,6 +1099,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
formItem = h('van-cell',{
props: {
title: info.label,
rules: this.rules[info.name]
}
},[
h(
@ -1236,6 +1244,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
value: typeof findFlow === "object" ? (findFlow.name || findFlow.title) : findFlow,
clearable: true,
placeholder: info.help_text,
rules: this.rules[info.name]
},
on: {
click: (_) => {
@ -1306,6 +1315,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
h(
"van-form",
{
ref: "vanForm",
props: {
"scroll-to-error": true,
},

@ -5,9 +5,13 @@
show-footer
title="值班管理"
show-confirm-button
:width="600"
:height="400"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
esc-closable
transfer
show-zoom
resize
:z-index="zIndex"
:fullscreen="$store.getters.device === 'mobile'"
@input="e => $emit('update:isShow',e)"
>
@ -48,6 +52,9 @@
<script>
import UserPicker from "@/components/UserPicker/index.vue";
import { save } from '@/api/onDutySchedules'
import {defaultModalSize} from "@/settings";
import { PopupManager } from "element-ui/lib/utils/popup";
export default {
components: {
UserPicker
@ -61,6 +68,8 @@ export default {
},
data() {
return {
zIndex: PopupManager.nextZIndex(),
defaultModalSize,
loading: false,
form: {
date: '',
@ -99,6 +108,13 @@ export default {
}
})
}
},
watch: {
isShow(newVal) {
if(newVal) {
this.zIndex = PopupManager.nextZIndex()
}
}
}
}
</script>

@ -6,8 +6,11 @@
show-footer
title="公共文件柜栏目"
show-confirm-button
:width="600"
:height="400"
resize
show-zoom
transfer
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
:fullscreen="$store.getters.device === 'mobile'"
esc-closable
@input="e => $emit('update:isShow',e)"
@ -53,6 +56,7 @@
import UserPicker from "@/components/UserPicker/index.vue";
import { menuSave } from '@/api/document'
import { PopupManager } from "element-ui/lib/utils/popup";
import {defaultModalSize} from "@/settings";
export default {
components: {
UserPicker
@ -70,6 +74,7 @@ export default {
},
data() {
return {
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {

@ -3,10 +3,14 @@
<vxe-modal
:value="isShow"
show-footer
transfer
:z-index="zIndex"
resize
show-zoom
title="会议室"
show-confirm-button
:width="600"
:height="400"
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
esc-closable
:fullscreen="$store.getters.device === 'mobile'"
@input="e => $emit('update:isShow',e)"
@ -29,6 +33,9 @@
<script>
import { save } from '@/api/meetingRoom'
import { defaultModalSize } from "@/settings";
import { PopupManager } from 'element-ui/lib/utils/popup'
export default {
props: {
isShow: {
@ -39,7 +46,9 @@ export default {
},
data() {
return {
defaultModalSize,
loading: false,
zIndex: PopupManager.nextZIndex(),
form: {
name: '',
myindex: 0
@ -66,6 +75,13 @@ export default {
}
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
this.zIndex = PopupManager.nextZIndex()
}
}
}
}
</script>

@ -5,8 +5,12 @@
show-footer
title="特殊日期"
show-confirm-button
:width="600"
:height="400"
transfer
show-zoom
resize
:z-index="zIndex"
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
esc-closable
:fullscreen="$store.getters.device === 'mobile'"
@input="e => $emit('update:isShow',e)"
@ -35,6 +39,9 @@
<script>
import { save } from '@/api/specialDays'
import {defaultModalSize} from "@/settings";
import { PopupManager } from 'element-ui/lib/utils/popup'
export default {
props: {
isShow: {
@ -45,6 +52,8 @@ export default {
},
data() {
return {
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {
date: '',
@ -80,6 +89,13 @@ export default {
}
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
this.zIndex = PopupManager.nextZIndex()
}
}
}
}
</script>

@ -1,13 +1,17 @@
<template>
<div>
<vxe-modal
:z-index="zIndex"
:value="isShow"
show-footer
title="车辆证照管理"
show-confirm-button
:width="840"
:height="660"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
esc-closable
transfer
show-zoom
resize
:fullscreen="$store.getters.device === 'mobile'"
@input="e => $emit('update:isShow',e)"
>
@ -67,6 +71,9 @@
<script>
import { getToken } from '@/utils/auth'
import { save } from '@/api/vehicleCertificate'
import {defaultModalSize} from "@/settings";
import { PopupManager } from "element-ui/lib/utils/popup";
export default {
props: {
isShow: {
@ -83,6 +90,8 @@ export default {
return {
fileList: [],
action: process.env.VUE_APP_UPLOAD_API,
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {
@ -138,6 +147,13 @@ export default {
}
})
}
},
watch: {
isShow(newVal) {
if(newVal) {
this.zIndex = PopupManager.nextZIndex()
}
}
}
}
</script>

@ -29,8 +29,11 @@
:z-index="zIndex"
title="打卡详情"
show-confirm-button
:width="680"
:height="540"
transfer
show-zoom
resize
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
esc-closable
:fullscreen="$store.getters.device === 'mobile'"
>
@ -116,11 +119,13 @@
<script>
import { index } from '@/api/attendance'
import { PopupManager } from "element-ui/lib/utils/popup";
import {defaultModalSize} from "@/settings";
export default {
data() {
return {
isShow: false,
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
day: new Date(),

@ -42,9 +42,12 @@
:z-index="zIndex"
title="外勤打卡"
show-confirm-button
:width="560"
:height="440"
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
esc-closable
transfer
show-zoom
resize
:fullscreen="$store.getters.device === 'mobile'"
>
<div style="line-height: 3;color: #333;font-weight: 600;">打卡照片</div>
@ -72,7 +75,7 @@ import MonthStatics from './components/MonthStatics'
import axios from "axios";
import * as uni from "@/assets/uni.webview.1.5.6";
import { PopupManager } from "element-ui/lib/utils/popup";
import { uploadSize } from "@/settings"
import {defaultModalSize, uploadSize} from "@/settings"
export default {
components: {
MonthStatics
@ -86,6 +89,7 @@ export default {
action: process.env.VUE_APP_UPLOAD_API,
fileList: [],
isShow: false,
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
imageId: '',
remark: '',

@ -5,9 +5,10 @@
show-footer
title="特殊日期"
show-confirm-button
:width="600"
:height="400"
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
esc-closable
transfer
:fullscreen="$store.getters.device === 'mobile'"
@input="e => $emit('update:isShow',e)"
>
@ -35,6 +36,7 @@
<script>
import { save } from '@/api/config'
import {defaultModalSize} from "@/settings";
export default {
props: {
isShow: {
@ -45,6 +47,7 @@ export default {
},
data() {
return {
defaultModalSize,
loading: false,
form: {
name: '',

@ -259,10 +259,11 @@
:z-index="zIndex"
transfer
show-zoom
resize
:fullscreen="$store.getters.device === 'mobile'"
title="办理"
width="86vw"
height="80vh"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
esc-closable
>
<iframe
@ -284,6 +285,7 @@ import { flow } from "@/api/flow";
import { index as configIndex } from "@/api/config";
import { index } from "@/api/attendance";
import {isExternal} from "@/utils/validate";
import {defaultModalSize} from "@/settings";
export default {
name: "Dashboard",
components: {
@ -291,6 +293,7 @@ export default {
},
data() {
return {
defaultModalSize,
modalUrl: "",
zIndex: PopupManager.nextZIndex(),
isShowModal: false,

@ -6,8 +6,11 @@
show-footer
title="公共文件柜"
show-confirm-button
:width="600"
:height="400"
transfer
show-zoom
resize
:width="defaultModalSize.width"
:height="defaultModalSize.height"
:fullscreen="$store.getters.device === 'mobile'"
esc-closable
@input="e => $emit('update:isShow',e)"
@ -62,7 +65,7 @@
import { getToken } from '@/utils/auth'
import { save } from '@/api/document'
import { PopupManager } from "element-ui/lib/utils/popup";
import { uploadSize } from "@/settings"
import {defaultModalSize, uploadSize} from "@/settings"
import { formatFileSize } from "@/utils"
export default {
props: {
@ -86,6 +89,7 @@ export default {
action: process.env.VUE_APP_UPLOAD_API,
fileList: [],
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {

@ -4,6 +4,7 @@ import formBuilder from "@/utils/formBuilder";
import {PopupManager} from "element-ui/lib/utils/popup";
import request from '@/utils/request'
import moment from "moment/moment";
import {defaultModalSize} from "@/settings";
export default {
props: {
@ -57,6 +58,7 @@ export default {
data() {
return {
// modal
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
isShowModal: false,
modalRender: () => {},
@ -187,7 +189,7 @@ export default {
for (let i = 0;i < subFormName.length;i++) {
let $subForm = this.$refs[`subForm-${subFormName[i]}`]
if ($subForm) {
const errMap = await this.$refs[`subForm-${subFormName[i]}`].validate()
const errMap = await this.$refs[`subForm-${subFormName[i]}`].validate(true)
if (errMap) {
throw new Error(errMap)
}
@ -263,8 +265,11 @@ export default {
props: {
zIndex: this.zIndex,
value: this.isShowModal,
height: 640,
width: 860,
height: defaultModalSize.height,
width: defaultModalSize.width,
resize: true,
transfer: true,
"show-zoom": true,
"esc-closable": true,
},
on: {

@ -102,7 +102,13 @@ export default {
}
},
methods: {
request
request,
async validate() {
const $vanForm = this.$refs['vanForm']
if ($vanForm) {
await $vanForm.validate()
}
},
},
computed: {},
watch: {
@ -276,7 +282,8 @@ export default {
props: {
zIndex: this.zIndex,
value: this.isShowModal,
fullscreen: true
fullscreen: true,
transfer: true
},
on: {
input: e => {

@ -8,8 +8,10 @@
show-zoom
:fullscreen="$store.getters.device === 'mobile'"
show-confirm-button
:width="640"
:height="540"
transfer
resize
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
@input="e => $emit('update:visible',e)"
>
<div>
@ -108,6 +110,7 @@
<script>
import { getNextNode, getNextNodeUsers, assign, preShare } from "@/api/flow";
import { PopupManager } from 'element-ui/lib/utils/popup'
import {defaultModalSize} from "@/settings";
export default {
props: {
@ -127,6 +130,7 @@ export default {
isIndeterminate: false,
checkAll: false,
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
form: {
cc_users: [],

@ -5,10 +5,13 @@
:z-index="zIndex"
title="转办"
show-zoom
transfer
resize
esc-closable
:fullscreen="$store.getters.device === 'mobile'"
show-confirm-button
:width="760"
:height="540"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
@input="e => $emit('update:isShow',e)">
<div>
<div>
@ -45,6 +48,7 @@
<script>
import { preForward, forward } from '@/api/flow'
import { PopupManager } from 'element-ui/lib/utils/popup'
import {defaultModalSize} from "@/settings";
export default {
props: {
@ -57,6 +61,7 @@ export default {
},
data() {
return {
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
form: {
id: "",

@ -5,10 +5,12 @@
:z-index="zIndex"
title="退回"
show-zoom
resize
transfer
:fullscreen="$store.getters.device === 'mobile'"
show-confirm-button
:width="760"
:height="540"
:width="defaultModalSize.sWidth"
:height="defaultModalSize.sHeight"
@input="e => $emit('update:isShow',e)">
<div>
@ -41,7 +43,7 @@
<script>
import { flowLogs, rollback } from '@/api/flow'
import { PopupManager } from 'element-ui/lib/utils/popup'
import { defaultModalSize } from '@/settings'
export default {
props: {
isShow: {
@ -53,6 +55,7 @@ export default {
},
data() {
return {
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
form: {
id: "",

@ -6,8 +6,10 @@
title="抄送"
show-zoom
show-confirm-button
:width="800"
:height="600"
transfer
resize
:width="defaultModalSize.width"
:height="defaultModalSize.height"
@input="e => $emit('update:isShow',e)">
<div>
<el-tag effect="dark">{{ flow.custom_model ? flow.custom_model.name : ''}}流水号{{ flow.id }}抄送</el-tag>
@ -38,6 +40,7 @@
<script>
import { preShare, share } from '@/api/flow'
import { PopupManager } from 'element-ui/lib/utils/popup'
import {defaultModalSize} from "@/settings";
export default {
props: {
@ -50,6 +53,7 @@ export default {
},
data() {
return {
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
config: {
cc_users: []

@ -21,6 +21,7 @@
v-for="step in config.logs"
:title="step.node.name"
:status="step.status !== -1 ? 'success' : 'error'"
icon="el-icon-circle-check"
></el-step>
</template>
<el-step
@ -29,12 +30,16 @@
icon="el-icon-edit"
></el-step>
<el-step
v-for="nextNode in node.nextNodes"
:key="nextNode.id"
:title="nextNode.name"
icon="el-icon-right"
status="wait"
></el-step>
>
<template #title>
<div style="max-width: 180px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
<span v-for="(nextNode, index) in ((node.nextNodes && node.nextNodes instanceof Array) ? node.nextNodes : [])">{{ index === 0 ? '' : ',' }}{{ nextNode.name }}</span>
</div>
<div v-if="node.nextNodes">{{ node.nextNodes.length }}</div>
</template>
</el-step>
</el-steps>
<el-divider></el-divider>
@ -445,6 +450,8 @@ export default {
}
},
trigger: "blur",
pattern: validation.get(rule),
message: `${field.label}必须为${validationName.get(rule)}`,
};
}
});
@ -473,6 +480,8 @@ export default {
})
},
trigger: "blur",
pattern: validation.get(rule),
message: `${field.label}必须为${validationName.get(rule)}`,
};
}
});
@ -700,6 +709,13 @@ export default {
}
copyForm = deepCopy(this.$refs["desktopForm"].form);
} else {
try {
await this.$refs['mobileForm'].validate()
} catch (err) {
console.warn(err)
this.$message.warning('数据校验失败')
return
}
copyForm = deepCopy(this.$refs["mobileForm"].form);
}
const uploadHandler = (form) => {
@ -811,9 +827,9 @@ export default {
return this.config?.currentNode || {};
},
scriptContent() {
if (this.config?.customModel?.view_js && this.$route.query.flow_id) {
if (this.config?.customModel?.view_js && this.$route.query.flow_id && /\/detail/.test(this.$route.path)) {
return this.config?.customModel?.view_js;
} else if (this.config?.customModel?.js && !this.$route.query.flow_id) {
} else if (this.config?.customModel?.js) {
return this.config?.customModel?.js;
}
},
@ -853,8 +869,9 @@ export default {
::v-deep .el-step__icon.is-icon {
border-radius: 100%;
box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05);
width: 40px;
height: 40px;
width: 36px;
height: 36px;
border: solid 2px;
}
::v-deep .el-step.is-center .el-step__line {
top: 50%;
@ -886,6 +903,11 @@ export default {
margin: 4px 6px;
}
}
::v-deep .el-steps--horizontal {
display: flex;
flex-wrap: wrap;
}
}
</style>
<style lang="scss">

@ -109,7 +109,6 @@
title="流水号"
></vxe-column>
<vxe-column
v-if="$route.params.type === 'all'"
width="80"
title="发起人"
align="center"

@ -50,7 +50,7 @@
<script>
import * as echarts from 'echarts'
import { statistics } from '@/api/flow'
import { index } from '@/api/department'
import { departmentListNoAuth } from '@/api/common'
import { debounce } from '@/utils'
export default {
@ -305,7 +305,7 @@ export default {
},
async getDepartments() {
try {
this.departments = await index()
this.departments = await departmentListNoAuth()
} catch (e) {
console.error(e)
}

@ -6,9 +6,12 @@
:z-index="zIndex"
title="会议使用审核"
show-confirm-button
:width="640"
:height="580"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
esc-closable
transfer
show-zoom
resize
:fullscreen="$store.getters.device === 'mobile'"
@input="(e) => $emit('update:isShow', e)"
>
@ -121,7 +124,7 @@ import { getToken } from "@/utils/auth";
import { save } from "@/api/meeting";
import { PopupManager } from "element-ui/lib/utils/popup";
import { userListNoAuth as index } from '@/api/common';
import { uploadSize } from "@/settings";
import {defaultModalSize, uploadSize} from "@/settings";
import { formatFileSize } from "@/utils"
export default {
props: {
@ -144,6 +147,7 @@ export default {
return {
uploadSize,
users: [],
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {

@ -6,9 +6,12 @@
:z-index="zIndex"
title="发布通知或提醒"
show-confirm-button
:width="740"
:height="620"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
esc-closable
transfer
show-zoom
resize
:fullscreen="$store.getters.device === 'mobile'"
@input="(e) => $emit('update:isShow', e)"
>
@ -111,6 +114,7 @@ import { getToken } from "@/utils/auth";
import { save, show } from "@/api/notice";
import { PopupManager } from "element-ui/lib/utils/popup";
import { userListNoAuth as index } from "@/api/common";
import {defaultModalSize} from "@/settings";
export default {
props: {
isShow: {
@ -124,6 +128,7 @@ export default {
type: 'add',
id: '',
users: [],
defaultModalSize,
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {

@ -5,9 +5,12 @@
show-footer
title="车船管理"
show-confirm-button
:width="840"
:height="620"
:width="defaultModalSize.width"
:height="defaultModalSize.height"
esc-closable
transfer
show-zoom
resize
@input="e => $emit('update:isShow',e)"
>
<el-form ref="elForm" :model="form" :rules="rules" label-position="top" label-width="100">
@ -84,6 +87,7 @@
<script>
import { getToken } from '@/utils/auth'
import { save } from '@/api/vehicle'
import {defaultModalSize} from "@/settings";
export default {
props: {
departments: {
@ -98,6 +102,7 @@ export default {
},
data() {
return {
defaultModalSize,
action: process.env.VUE_APP_UPLOAD_API,
fileList: [],
loading: false,

Loading…
Cancel
Save