fix: lint src components

Co-authored-by: Codex <codex@openai.com>
pull/880/head^2
DevDengChao 2026-05-18 14:19:40 +08:00
parent d0cd93de5a
commit 40d762070f
55 changed files with 290 additions and 270 deletions

View File

@ -116,7 +116,7 @@ const toggleClick = () => {
:row="{ :row="{
label: item.label label: item.label
}" }"
>{{ item.label }} >{{ item.label }}
</slot> </slot>
</template> </template>
@ -131,7 +131,7 @@ const toggleClick = () => {
</slot> </slot>
<slot v-else :name="item.field" :row="data"> <slot v-else :name="item.field" :row="data">
{{ {{
item.mappedField ? data[item.mappedField] : data[item.field] item.mappedField ? data[item.mappedField] : data[item.field]
}} }}
</slot> </slot>
</template> </template>

View File

@ -165,8 +165,8 @@ $toolbar-position: -55px;
width: 80px; width: 80px;
height: 25px; height: 25px;
font-size: 12px; font-size: 12px;
color: #6a6a6a;
line-height: 25px; line-height: 25px;
color: #6a6a6a;
text-align: center; text-align: center;
background: #fff; background: #fff;
box-shadow: box-shadow:

View File

@ -94,9 +94,9 @@ const handleCloneComponent = (component: DiyComponent<any>) => {
<style scoped lang="scss"> <style scoped lang="scss">
.editor-left { .editor-left {
z-index: 1; z-index: 1;
flex-shrink: 0;
user-select: none;
box-shadow: 8px 0 8px -8px rgb(0 0 0 / 12%); box-shadow: 8px 0 8px -8px rgb(0 0 0 / 12%);
user-select: none;
flex-shrink: 0;
:deep(.el-collapse) { :deep(.el-collapse) {
border-top: none; border-top: none;

View File

@ -22,7 +22,7 @@
<div <div
v-if="property.indicator === 'number'" v-if="property.indicator === 'number'"
class="absolute bottom-10px right-10px rounded-xl bg-black p-x-8px p-y-2px text-10px text-white opacity-40" class="absolute bottom-10px right-10px rounded-xl bg-black p-x-8px p-y-2px text-10px text-white opacity-40"
>{{ currentIndex }} / {{ property.items.length }}</div >{{ currentIndex }} / {{ property.items.length }}</div
> >
</div> </div>
</template> </template>

View File

@ -55,12 +55,12 @@ const handleToggleFab = () => {
/* 模态背景 */ /* 模态背景 */
.modal-bg { .modal-bg {
position: absolute; position: absolute;
left: calc(50% - 375px / 2);
top: 0; top: 0;
left: calc(50% - 375px / 2);
z-index: 11; z-index: 11;
width: 375px; width: 375px;
height: 100%; height: 100%;
background-color: rgba(#000000, 0.4); background-color: rgb(0 0 0 / 40%);
} }
.fab-icon { .fab-icon {

View File

@ -192,39 +192,39 @@ const handleAppLinkChange = (appLink: AppLink) => {
<style scoped lang="scss"> <style scoped lang="scss">
.hot-zone { .hot-zone {
position: absolute; position: absolute;
background: var(--el-color-primary-light-7); z-index: 10;
opacity: 0.8;
border: 1px solid var(--el-color-primary);
color: var(--el-color-primary);
font-size: 16px;
display: flex; display: flex;
font-size: 16px;
color: var(--el-color-primary);
cursor: move;
background: var(--el-color-primary-light-7);
border: 1px solid var(--el-color-primary);
opacity: 0.8;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
cursor: move;
z-index: 10;
/* 控制点 */ /* 控制点 */
.ctrl-dot { .ctrl-dot {
position: absolute; position: absolute;
z-index: 11;
width: 8px; width: 8px;
height: 8px; height: 8px;
border-radius: 50%;
border: inherit;
background-color: #fff; background-color: #fff;
z-index: 11; border: inherit;
border-radius: 50%;
} }
.delete { .delete {
display: none;
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
display: none;
padding: 2px 2px 6px 6px; padding: 2px 2px 6px 6px;
background-color: var(--el-color-primary);
border-radius: 0 0 0 80%;
cursor: pointer;
color: #fff; color: #fff;
text-align: right; text-align: right;
cursor: pointer;
background-color: var(--el-color-primary);
border-radius: 0 0 0 80%;
} }
&:hover { &:hover {

View File

@ -28,15 +28,15 @@ const props = defineProps<{ property: HotZoneProperty }>()
<style scoped lang="scss"> <style scoped lang="scss">
.hot-zone { .hot-zone {
position: absolute; position: absolute;
background: var(--el-color-primary-light-7); z-index: 10;
opacity: 0.8;
border: 1px solid var(--el-color-primary);
color: var(--el-color-primary);
font-size: 14px;
display: flex; display: flex;
font-size: 14px;
color: var(--el-color-primary);
cursor: move;
background: var(--el-color-primary-light-7);
border: 1px solid var(--el-color-primary);
opacity: 0.8;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
cursor: move;
z-index: 10;
} }
</style> </style>

View File

@ -42,22 +42,22 @@ const handleOpenEditDialog = () => {
<style scoped lang="scss"> <style scoped lang="scss">
.hot-zone { .hot-zone {
position: absolute; position: absolute;
display: flex;
font-size: 12px;
color: #fff;
cursor: move;
background: #409effbf; background: #409effbf;
border: 1px solid var(--el-color-primary); border: 1px solid var(--el-color-primary);
color: #fff;
font-size: 12px;
display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
cursor: move;
/* 控制点 */ /* 控制点 */
.ctrl-dot { .ctrl-dot {
position: absolute; position: absolute;
width: 4px; width: 4px;
height: 4px; height: 4px;
border-radius: 50%;
background-color: #fff; background-color: #fff;
border-radius: 50%;
} }
} }
</style> </style>

View File

@ -103,13 +103,16 @@ watch(
.el-carousel__indicator { .el-carousel__indicator {
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
.el-carousel__button { .el-carousel__button {
--el-carousel-indicator-height: 6px; --el-carousel-indicator-height: 6px;
--el-carousel-indicator-width: 6px; --el-carousel-indicator-width: 6px;
--el-carousel-indicator-out-color: #ff6000; --el-carousel-indicator-out-color: #ff6000;
border-radius: 6px; border-radius: 6px;
} }
} }
.el-carousel__indicator.is-active { .el-carousel__indicator.is-active {
.el-carousel__button { .el-carousel__button {
--el-carousel-indicator-width: 12px; --el-carousel-indicator-width: 12px;

View File

@ -93,8 +93,8 @@ defineOptions({ name: 'NavigationBarCellProperty' })
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
modelValue: NavigationBarCellProperty[] modelValue?: NavigationBarCellProperty[]
isMp: boolean isMp?: boolean
}>(), }>(),
{ {
modelValue: () => [], modelValue: () => [],

View File

@ -67,10 +67,10 @@ const getSearchProp = computed(() => (cell: NavigationBarCellProperty) => {
.navigation-bar { .navigation-bar {
display: flex; display: flex;
height: 50px; height: 50px;
padding: 0 6px;
background: #fff; background: #fff;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 0 6px;
/* 左边 */ /* 左边 */
.left { .left {

View File

@ -77,7 +77,7 @@
v-if="property.fields.marketPrice.show && spu.marketPrice" v-if="property.fields.marketPrice.show && spu.marketPrice"
class="ml-4px text-10px line-through" class="ml-4px text-10px line-through"
:style="{ color: property.fields.marketPrice.color }" :style="{ color: property.fields.marketPrice.color }"
>{{ fenToYuan(spu.marketPrice) }} >{{ fenToYuan(spu.marketPrice) }}
</span> </span>
</div> </div>
<div class="text-12px"> <div class="text-12px">

View File

@ -74,7 +74,7 @@
v-if="property.fields.marketPrice.show && spu.marketPrice" v-if="property.fields.marketPrice.show && spu.marketPrice"
class="ml-4px text-10px line-through" class="ml-4px text-10px line-through"
:style="{ color: property.fields.marketPrice.color }" :style="{ color: property.fields.marketPrice.color }"
>{{ fenToYuan(spu.marketPrice) }}</span >{{ fenToYuan(spu.marketPrice) }}</span
> >
</div> </div>
<div class="text-12px"> <div class="text-12px">

View File

@ -74,7 +74,7 @@
v-if="property.fields.marketPrice.show && spu.marketPrice" v-if="property.fields.marketPrice.show && spu.marketPrice"
class="ml-4px text-10px line-through" class="ml-4px text-10px line-through"
:style="{ color: property.fields.marketPrice.color }" :style="{ color: property.fields.marketPrice.color }"
>{{ fenToYuan(spu.marketPrice) }}</span >{{ fenToYuan(spu.marketPrice) }}</span
> >
</div> </div>
<div class="text-12px"> <div class="text-12px">

View File

@ -583,12 +583,12 @@ $toolbar-height: 42px;
gap: 8px; gap: 8px;
:deep(.el-tag) { :deep(.el-tag) {
box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);
border: none; border: none;
box-shadow: 0 2px 8px 0 rgb(0 0 0 / 10%);
.el-tag__content { .el-tag__content {
width: 100%;
display: flex; display: flex;
width: 100%;
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;

View File

@ -27,7 +27,7 @@ const { getPrefixCls } = useDesign()
const prefixCls = getPrefixCls('form') const prefixCls = getPrefixCls('form')
export default defineComponent({ export default defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: 'Form', name: 'Form',
props: { props: {
// Form // Form

View File

@ -64,9 +64,9 @@ const showPreview = computed(() => {
} }
.iframe-preview { .iframe-preview {
overflow: hidden;
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
border-radius: 4px; border-radius: 4px;
overflow: hidden;
} }
.iframe-content { .iframe-content {
@ -76,11 +76,11 @@ const showPreview = computed(() => {
.iframe-placeholder { .iframe-placeholder {
display: flex; display: flex;
align-items: center;
justify-content: center;
min-height: 200px; min-height: 200px;
background-color: #fafafa;
border: 1px dashed #dcdfe6; border: 1px dashed #dcdfe6;
border-radius: 4px; border-radius: 4px;
background-color: #fafafa; align-items: center;
justify-content: center;
} }
</style> </style>

View File

@ -14,7 +14,6 @@ defineProps({
title: propTypes.string.def(''), title: propTypes.string.def(''),
schema: { schema: {
type: Array as PropType<Array<string | TipSchema>>, type: Array as PropType<Array<string | TipSchema>>,
required: true,
default: () => [] default: () => []
}, },
showIndex: propTypes.bool.def(true), showIndex: propTypes.bool.def(true),

View File

@ -26,6 +26,7 @@ const { modelValue, color } = useVModels(props, emit)
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-input-group__append) { :deep(.el-input-group__append) {
padding: 0; padding: 0;
.el-color-picker__trigger { .el-color-picker__trigger {
padding: 0; padding: 0;
border-left: none; border-left: none;

View File

@ -225,15 +225,16 @@ const eachCube = (callback: (x: number, y: number, cube: Cube) => void) => {
<style lang="scss" scoped> <style lang="scss" scoped>
.cube-table { .cube-table {
position: relative; position: relative;
border-spacing: 0;
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0;
.cube { .cube {
border: 1px solid var(--el-border-color);
text-align: center;
color: var(--el-text-color-secondary); color: var(--el-text-color-secondary);
text-align: center;
cursor: pointer; cursor: pointer;
border: 1px solid var(--el-border-color);
box-sizing: border-box; box-sizing: border-box;
&.active { &.active {
background: var(--el-color-primary-light-9); background: var(--el-color-primary-light-9);
} }
@ -242,28 +243,28 @@ const eachCube = (callback: (x: number, y: number, cube: Cube) => void) => {
.hot-area { .hot-area {
position: absolute; position: absolute;
display: flex; display: flex;
color: var(--el-color-primary);
cursor: pointer;
background: var(--el-color-primary-light-8);
border: 1px solid var(--el-color-primary);
border-collapse: collapse;
border-spacing: 0;
box-sizing: border-box;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border: 1px solid var(--el-color-primary);
background: var(--el-color-primary-light-8);
color: var(--el-color-primary);
box-sizing: border-box;
border-spacing: 0;
border-collapse: collapse;
cursor: pointer;
.btn-delete { .btn-delete {
z-index: 1;
position: absolute; position: absolute;
top: -8px; top: -8px;
right: -8px; right: -8px;
height: 16px; z-index: 1;
width: 16px;
display: flex; display: flex;
width: 16px;
height: 16px;
background-color: #fff;
border-radius: 50%;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border-radius: 50%;
background-color: #fff;
} }
} }
} }

View File

@ -51,14 +51,14 @@ onMounted(async () => {
<style lang="scss"> <style lang="scss">
.markdown-view { .markdown-view {
font-family: PingFang SC; max-width: 100%;
font-family: "PingFang SC";
font-size: 0.95rem; font-size: 0.95rem;
font-weight: 400; font-weight: 400;
line-height: 1.6rem; line-height: 1.6rem;
letter-spacing: 0em; letter-spacing: 0;
text-align: left;
color: #3b3e55; color: #3b3e55;
max-width: 100%; text-align: left;
pre { pre {
position: relative; position: relative;
@ -69,22 +69,23 @@ onMounted(async () => {
} }
code.hljs { code.hljs {
border-radius: 6px;
padding-top: 20px;
width: auto; width: auto;
@media screen and (min-width: 1536px) { padding-top: 20px;
border-radius: 6px;
@media screen and (width >= 1536px) {
width: 960px; width: 960px;
} }
@media screen and (max-width: 1536px) and (min-width: 1024px) { @media screen and (width <= 1536px) and (width >= 1024px) {
width: calc(100vw - 400px - 64px - 32px * 2); width: calc(100vw - 400px - 64px - 32px * 2);
} }
@media screen and (max-width: 1024px) and (min-width: 768px) { @media screen and (width <= 1024px) and (width >= 768px) {
width: calc(100vw - 32px * 2); width: calc(100vw - 32px * 2);
} }
@media screen and (max-width: 768px) { @media screen and (width <= 768px) {
width: calc(100vw - 16px * 2); width: calc(100vw - 16px * 2);
} }
} }
@ -107,9 +108,9 @@ onMounted(async () => {
h4, h4,
h5, h5,
h6 { h6 {
color: var(--color-G900);
margin: 24px 0 8px; margin: 24px 0 8px;
font-weight: 600; font-weight: 600;
color: #3b3e55;
} }
h1 { h1 {
@ -145,8 +146,8 @@ onMounted(async () => {
/* 列表(有序,无序) */ /* 列表(有序,无序) */
ul, ul,
ol { ol {
margin: 0 0 8px 0;
padding: 0; padding: 0;
margin: 0 0 8px;
font-size: 16px; font-size: 16px;
line-height: 24px; line-height: 24px;
color: #3b3e55; // var(--color-CG600); color: #3b3e55; // var(--color-CG600);
@ -158,8 +159,8 @@ onMounted(async () => {
} }
ol > li { ol > li {
list-style-type: decimal;
margin-bottom: 1rem; margin-bottom: 1rem;
list-style-type: decimal;
// , // ,
// &:nth-child(n + 10) { // &:nth-child(n + 10) {
// margin-left: 30px; // margin-left: 30px;
@ -171,23 +172,23 @@ onMounted(async () => {
} }
ul > li { ul > li {
list-style-type: disc;
font-size: 16px;
line-height: 24px;
margin-right: 11px; margin-right: 11px;
margin-bottom: 1rem; margin-bottom: 1rem;
font-size: 16px;
line-height: 24px;
color: #3b3e55; // var(--color-G900); color: #3b3e55; // var(--color-G900);
list-style-type: disc;
} }
ol ul, ol ul,
ol ul > li, ol ul > li,
ul ul, ul ul,
ul ul li { ul ul li {
margin-bottom: 1rem;
margin-left: 6px;
// list-style: circle; // list-style: circle;
font-size: 16px; font-size: 16px;
list-style: none; list-style: none;
margin-left: 6px;
margin-bottom: 1rem;
} }
ul ul ul, ul ul ul,

View File

@ -31,7 +31,7 @@ import { ElTag } from 'element-plus'
defineOptions({ name: 'OperateLogV2' }) defineOptions({ name: 'OperateLogV2' })
interface Props { interface Props {
logList: OperateLogVO[] // logList?: OperateLogVO[] //
} }
withDefaults(defineProps<Props>(), { withDefaults(defineProps<Props>(), {

View File

@ -8,8 +8,8 @@
<UserTaskNode <UserTaskNode
v-if=" v-if="
currentNode && currentNode &&
(currentNode.type === NodeType.USER_TASK_NODE || (currentNode.type === NodeType.USER_TASK_NODE ||
currentNode.type === NodeType.TRANSACTOR_NODE) currentNode.type === NodeType.TRANSACTOR_NODE)
" "
:flow-node="currentNode" :flow-node="currentNode"
@update:flow-node="handleModelValueUpdate" @update:flow-node="handleModelValueUpdate"

View File

@ -246,9 +246,9 @@ onMounted(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.simple-process-model-container { .simple-process-model-container {
position: relative;
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative;
overflow: hidden; overflow: hidden;
user-select: none; // user-select: none; //
} }

View File

@ -18,16 +18,16 @@
:placeholder="currentNode.name" :placeholder="currentNode.name"
/> />
<div v-else class="node-name" <div v-else class="node-name"
>{{ currentNode.name }} >{{ currentNode.name }}
<Icon class="ml-1" icon="ep:edit-pen" :size="16" @click="clickIcon()" <Icon class="ml-1" icon="ep:edit-pen" :size="16" @click="clickIcon()"
/></div> /></div>
<div class="divide-line"></div> <div class="divide-line"></div>
</div> </div>
</template> </template>
<div> <div>
<div class="mb-3 font-size-16px" v-if="currentNode.conditionSetting?.defaultFlow" <div class="mb-3 font-size-16px" v-if="currentNode.conditionSetting?.defaultFlow"
>未满足其它条件时将进入此分支该分支不可编辑和删除</div >未满足其它条件时将进入此分支该分支不可编辑和删除</div
> >
<div v-else> <div v-else>
<Condition ref="conditionRef" v-model="condition" /> <Condition ref="conditionRef" v-model="condition" />

View File

@ -60,8 +60,8 @@
<el-form-item <el-form-item
v-if=" v-if="
configForm.candidateStrategy == CandidateStrategy.DEPT_MEMBER || configForm.candidateStrategy == CandidateStrategy.DEPT_MEMBER ||
configForm.candidateStrategy == CandidateStrategy.DEPT_LEADER || configForm.candidateStrategy == CandidateStrategy.DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER
" "
label="指定部门" label="指定部门"
prop="deptIds" prop="deptIds"
@ -156,10 +156,10 @@
<el-form-item <el-form-item
v-if=" v-if="
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER || configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER || configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER ||
configForm.candidateStrategy == configForm.candidateStrategy ==
CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER || CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER configForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER
" "
:label="deptLevelLabel!" :label="deptLevelLabel!"
prop="deptLevel" prop="deptLevel"
@ -218,7 +218,7 @@
:value="FieldPermissionType.READ" :value="FieldPermissionType.READ"
size="large" size="large"
:label="FieldPermissionType.WRITE" :label="FieldPermissionType.WRITE"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
<div class="item-radio-wrap"> <div class="item-radio-wrap">
@ -227,7 +227,7 @@
size="large" size="large"
:label="FieldPermissionType.WRITE" :label="FieldPermissionType.WRITE"
disabled disabled
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
<div class="item-radio-wrap"> <div class="item-radio-wrap">
@ -235,7 +235,7 @@
:value="FieldPermissionType.NONE" :value="FieldPermissionType.NONE"
size="large" size="large"
:label="FieldPermissionType.NONE" :label="FieldPermissionType.NONE"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
</el-radio-group> </el-radio-group>

View File

@ -28,7 +28,7 @@
<el-text <el-text
v-if=" v-if="
(!startUserIds || startUserIds.length === 0) && (!startUserIds || startUserIds.length === 0) &&
(!startDeptIds || startDeptIds.length === 0) (!startDeptIds || startDeptIds.length === 0)
" "
> >
全部成员可以发起流程 全部成员可以发起流程
@ -95,7 +95,7 @@
:value="FieldPermissionType.READ" :value="FieldPermissionType.READ"
size="large" size="large"
:label="FieldPermissionType.READ" :label="FieldPermissionType.READ"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
<div class="item-radio-wrap"> <div class="item-radio-wrap">
@ -103,7 +103,7 @@
:value="FieldPermissionType.WRITE" :value="FieldPermissionType.WRITE"
size="large" size="large"
:label="FieldPermissionType.WRITE" :label="FieldPermissionType.WRITE"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
<div class="item-radio-wrap"> <div class="item-radio-wrap">
@ -111,7 +111,7 @@
:value="FieldPermissionType.NONE" :value="FieldPermissionType.NONE"
size="large" size="large"
:label="FieldPermissionType.NONE" :label="FieldPermissionType.NONE"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
</el-radio-group> </el-radio-group>

View File

@ -79,8 +79,8 @@
<el-form-item <el-form-item
v-if=" v-if="
configForm.candidateStrategy == CandidateStrategy.DEPT_MEMBER || configForm.candidateStrategy == CandidateStrategy.DEPT_MEMBER ||
configForm.candidateStrategy == CandidateStrategy.DEPT_LEADER || configForm.candidateStrategy == CandidateStrategy.DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER
" "
label="指定部门" label="指定部门"
prop="deptIds" prop="deptIds"
@ -194,10 +194,10 @@
<el-form-item <el-form-item
v-if=" v-if="
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER || configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER || configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER ||
configForm.candidateStrategy == configForm.candidateStrategy ==
CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER || CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER configForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER
" "
:label="deptLevelLabel!" :label="deptLevelLabel!"
prop="deptLevel" prop="deptLevel"
@ -245,7 +245,7 @@
size="small" size="small"
v-if=" v-if="
item.value === ApproveMethodType.APPROVE_BY_RATIO && item.value === ApproveMethodType.APPROVE_BY_RATIO &&
configForm.approveMethod === ApproveMethodType.APPROVE_BY_RATIO configForm.approveMethod === ApproveMethodType.APPROVE_BY_RATIO
" "
/> />
</el-form-item> </el-form-item>
@ -414,7 +414,7 @@
<div> <div>
<el-divider content-position="left">跳过表达式</el-divider> <el-divider content-position="left">跳过表达式</el-divider>
<el-form-item prop="skipExpression"> <el-form-item prop="skipExpression">
<el-input v-model="configForm.skipExpression" type="textarea" /> <el-input v-model="configForm.skipExpression" type="textarea" />
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
@ -445,7 +445,7 @@
v-if="btnDisplayNameEdit[index]" v-if="btnDisplayNameEdit[index]"
/> />
<el-button v-else text @click="changeBtnDisplayName(index)" <el-button v-else text @click="changeBtnDisplayName(index)"
>{{ item.displayName }} &nbsp;<Icon icon="ep:edit" >{{ item.displayName }} &nbsp;<Icon icon="ep:edit"
/></el-button> /></el-button>
</div> </div>
<div class="button-setting-item-label"> <div class="button-setting-item-label">
@ -483,7 +483,7 @@
:value="FieldPermissionType.READ" :value="FieldPermissionType.READ"
size="large" size="large"
:label="FieldPermissionType.READ" :label="FieldPermissionType.READ"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
<div class="item-radio-wrap"> <div class="item-radio-wrap">
@ -491,7 +491,7 @@
:value="FieldPermissionType.WRITE" :value="FieldPermissionType.WRITE"
size="large" size="large"
:label="FieldPermissionType.WRITE" :label="FieldPermissionType.WRITE"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
<div class="item-radio-wrap"> <div class="item-radio-wrap">
@ -499,7 +499,7 @@
:value="FieldPermissionType.NONE" :value="FieldPermissionType.NONE"
size="large" size="large"
:label="FieldPermissionType.NONE" :label="FieldPermissionType.NONE"
><span></span ><span></span
></el-radio> ></el-radio>
</div> </div>
</el-radio-group> </el-radio-group>

View File

@ -41,7 +41,7 @@
</div> </div>
<div v-if="!readonly" class="node-toolbar"> <div v-if="!readonly" class="node-toolbar">
<div class="toolbar-icon" <div class="toolbar-icon"
><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode" ><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode"
/></div> /></div>
</div> </div>
</div> </div>

View File

@ -34,7 +34,7 @@
</div> </div>
<div v-if="!readonly" class="node-toolbar"> <div v-if="!readonly" class="node-toolbar">
<div class="toolbar-icon" <div class="toolbar-icon"
><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode" ><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode"
/></div> /></div>
</div> </div>
</div> </div>

View File

@ -34,7 +34,7 @@
</div> </div>
<div v-if="!readonly" class="node-toolbar"> <div v-if="!readonly" class="node-toolbar">
<div class="toolbar-icon" <div class="toolbar-icon"
><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode" ><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode"
/></div> /></div>
</div> </div>
</div> </div>

View File

@ -5,59 +5,59 @@
</div> </div>
</div> </div>
<el-dialog title="审批信息" v-model="dialogVisible" width="1000px" append-to-body> <el-dialog title="审批信息" v-model="dialogVisible" width="1000px" append-to-body>
<el-row> <el-row>
<el-table <el-table
:data="processInstanceInfos" :data="processInstanceInfos"
size="small" size="small"
border border
header-cell-class-name="table-header-gray" header-cell-class-name="table-header-gray"
> >
<el-table-column <el-table-column
label="序号" label="序号"
header-align="center" header-align="center"
align="center" align="center"
type="index" type="index"
width="50" width="50"
/> />
<el-table-column <el-table-column
label="发起人" label="发起人"
prop="assigneeUser.nickname" prop="assigneeUser.nickname"
min-width="100" min-width="100"
align="center" align="center"
/> />
<el-table-column label="部门" min-width="100" align="center"> <el-table-column label="部门" min-width="100" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.assigneeUser?.deptName || scope.row.ownerUser?.deptName }} {{ scope.row.assigneeUser?.deptName || scope.row.ownerUser?.deptName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="dateFormatter" :formatter="dateFormatter"
align="center" align="center"
label="开始时间" label="开始时间"
prop="createTime" prop="createTime"
min-width="140" min-width="140"
/> />
<el-table-column <el-table-column
:formatter="dateFormatter" :formatter="dateFormatter"
align="center" align="center"
label="结束时间" label="结束时间"
prop="endTime" prop="endTime"
min-width="140" min-width="140"
/> />
<el-table-column align="center" label="审批状态" prop="status" min-width="90"> <el-table-column align="center" label="审批状态" prop="status" min-width="90">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="耗时" prop="durationInMillis" width="100"> <el-table-column align="center" label="耗时" prop="durationInMillis" width="100">
<template #default="scope"> <template #default="scope">
{{ formatPast2(scope.row.durationInMillis) }} {{ formatPast2(scope.row.durationInMillis) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-row> </el-row>
</el-dialog> </el-dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { SimpleFlowNode } from '../consts' import { SimpleFlowNode } from '../consts'

View File

@ -9,7 +9,7 @@
<span class="iconfont icon-exclusive icon-size condition"></span> <span class="iconfont icon-exclusive icon-size condition"></span>
</div> </div>
<el-button v-else class="branch-node-add" color="#67c23a" @click="addCondition" plain <el-button v-else class="branch-node-add" color="#67c23a" @click="addCondition" plain
>添加条件</el-button >添加条件</el-button
> >
<div <div

View File

@ -9,7 +9,7 @@
<span class="iconfont icon-inclusive icon-size inclusive"></span> <span class="iconfont icon-inclusive icon-size inclusive"></span>
</div> </div>
<el-button v-else class="branch-node-add" color="#345da2" @click="addCondition" plain <el-button v-else class="branch-node-add" color="#345da2" @click="addCondition" plain
>添加条件</el-button >添加条件</el-button
> >
<div <div
class="branch-node-item" class="branch-node-item"
@ -78,8 +78,8 @@
class="branch-node-move move-node-right" class="branch-node-move move-node-right"
v-if=" v-if="
!readonly && !readonly &&
currentNode.conditionNodes && currentNode.conditionNodes &&
index < currentNode.conditionNodes.length - 2 index < currentNode.conditionNodes.length - 2
" "
@click="moveNode(index, 1)" @click="moveNode(index, 1)"
> >

View File

@ -9,7 +9,7 @@
<span class="iconfont icon-parallel icon-size parallel"></span> <span class="iconfont icon-parallel icon-size parallel"></span>
</div> </div>
<el-button v-else class="branch-node-add" color="#626aef" @click="addCondition" plain <el-button v-else class="branch-node-add" color="#626aef" @click="addCondition" plain
>添加分支</el-button >添加分支</el-button
> >
<div <div
class="branch-node-item" class="branch-node-item"

View File

@ -36,7 +36,7 @@
</div> </div>
<div v-if="!readonly" class="node-toolbar"> <div v-if="!readonly" class="node-toolbar">
<div class="toolbar-icon" <div class="toolbar-icon"
><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode" ><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode"
/></div> /></div>
</div> </div>
</div> </div>

View File

@ -10,7 +10,7 @@
> >
<div class="node-title-container"> <div class="node-title-container">
<div class="node-title-icon start-user" <div class="node-title-icon start-user"
><span class="iconfont icon-start-user"></span ><span class="iconfont icon-start-user"></span
></div> ></div>
<input <input
v-if="!readonly && showInput" v-if="!readonly && showInput"

View File

@ -36,7 +36,7 @@
</div> </div>
<div v-if="!readonly" class="node-toolbar"> <div v-if="!readonly" class="node-toolbar">
<div class="toolbar-icon" <div class="toolbar-icon"
><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode" ><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode"
/></div> /></div>
</div> </div>
</div> </div>

View File

@ -41,7 +41,7 @@
</div> </div>
<div v-if="!readonly" class="node-toolbar"> <div v-if="!readonly" class="node-toolbar">
<div class="toolbar-icon" <div class="toolbar-icon"
><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode" ><Icon color="#0089ff" icon="ep:circle-close-filled" :size="18" @click="deleteNode"
/></div> /></div>
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@ import { set } from 'lodash-es'
import { Pagination, TableColumn, TableSetPropsType, TableSlotDefault } from '@/types/table' import { Pagination, TableColumn, TableSetPropsType, TableSlotDefault } from '@/types/table'
export default defineComponent({ export default defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: 'Table', name: 'Table',
props: { props: {
pageSize: propTypes.number.def(10), pageSize: propTypes.number.def(10),

View File

@ -33,8 +33,8 @@ import { ElTable } from 'element-plus'
defineOptions({ name: 'TableSelectForm' }) defineOptions({ name: 'TableSelectForm' })
withDefaults( withDefaults(
defineProps<{ defineProps<{
modelValue: any[] modelValue?: any[]
title: string title?: string
}>(), }>(),
{ modelValue: () => [], title: '选择' } { modelValue: () => [], title: '选择' }
) )

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="upload-box"> <div class="upload-box" :style="uploadStyle">
<el-upload <el-upload
:id="uuid" :id="uuid"
:accept="fileType.join(',')" :accept="fileType.join(',')"
@ -82,6 +82,13 @@ const props = defineProps({
showBtnText: propTypes.bool.def(true), // showBtnText: propTypes.bool.def(true), //
directory: propTypes.string.def(undefined) // ==> undefined directory: propTypes.string.def(undefined) // ==> undefined
}) })
const uploadStyle = computed(() => ({
'--upload-width': props.width,
'--upload-height': props.height,
'--upload-border-radius': props.borderradius
}))
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
// id // id
@ -167,11 +174,11 @@ const uploadError = () => {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
width: v-bind(width); width: var(--upload-width);
height: v-bind(height); height: var(--upload-height);
overflow: hidden; overflow: hidden;
border: 1px dashed var(--el-border-color-darker); border: 1px dashed var(--el-border-color-darker);
border-radius: v-bind(borderradius); border-radius: var(--upload-border-radius);
transition: var(--el-transition-duration-fast); transition: var(--el-transition-duration-fast);
&:hover { &:hover {
@ -192,7 +199,7 @@ const uploadError = () => {
overflow: hidden; overflow: hidden;
background-color: transparent; background-color: transparent;
border: 1px dashed var(--el-border-color-darker); border: 1px dashed var(--el-border-color-darker);
border-radius: v-bind(borderradius); border-radius: var(--upload-border-radius);
&:hover { &:hover {
border: 1px dashed var(--el-color-primary); border: 1px dashed var(--el-color-primary);

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="upload-box"> <div class="upload-box" :style="uploadStyle">
<el-upload <el-upload
v-model:file-list="fileList" v-model:file-list="fileList"
:accept="fileType.join(',')" :accept="fileType.join(',')"
@ -85,6 +85,12 @@ const props = defineProps({
directory: propTypes.string.def(undefined) // ==> undefined directory: propTypes.string.def(undefined) // ==> undefined
}) })
const uploadStyle = computed(() => ({
'--upload-width': props.width,
'--upload-height': props.height,
'--upload-border-radius': props.borderradius
}))
const { uploadUrl, httpRequest } = useUpload(props.directory) const { uploadUrl, httpRequest } = useUpload(props.directory)
const fileList = ref<UploadUserFile[]>([]) const fileList = ref<UploadUserFile[]>([])
@ -238,7 +244,7 @@ const handleExceed = () => {
padding: 0; padding: 0;
overflow: hidden; overflow: hidden;
border: 1px dashed var(--el-border-color-darker); border: 1px dashed var(--el-border-color-darker);
border-radius: v-bind(borderradius); border-radius: var(--upload-border-radius);
&:hover { &:hover {
border: 1px dashed var(--el-color-primary); border: 1px dashed var(--el-color-primary);
@ -252,10 +258,10 @@ const handleExceed = () => {
.el-upload-list__item, .el-upload-list__item,
.el-upload--picture-card { .el-upload--picture-card {
width: v-bind(width); width: var(--upload-width);
height: v-bind(height); height: var(--upload-height);
background-color: transparent; background-color: transparent;
border-radius: v-bind(borderradius); border-radius: var(--upload-border-radius);
} }
.upload-image { .upload-image {

View File

@ -158,11 +158,13 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
.el-transfer { .el-transfer {
display: flex; display: flex;
} }
.el-transfer__buttons { .el-transfer__buttons {
display: flex !important; display: flex !important;
flex-direction: column-reverse; flex-direction: column-reverse;
justify-content: center; justify-content: center;
gap: 20px; gap: 20px;
.el-transfer__button:nth-child(2) { .el-transfer__button:nth-child(2) {
margin: 0; margin: 0;
} }

View File

@ -12,7 +12,7 @@ import { isFunction, isObject, some } from 'min-dash'
const WILDCARD = '*' const WILDCARD = '*'
function CamundaModdleExtension(eventBus) { function CamundaModdleExtension(eventBus) {
// eslint-disable-next-line @typescript-eslint/no-this-alias
const self = this const self = this
eventBus.on('moddleCopy.canCopyProperty', function (context) { eventBus.on('moddleCopy.canCopyProperty', function (context) {

View File

@ -28,7 +28,7 @@
</el-collapse-item> </el-collapse-item>
<el-collapse-item name="task" v-if="isTaskCollapseItemShow(elementType)" key="task"> <el-collapse-item name="task" v-if="isTaskCollapseItemShow(elementType)" key="task">
<template #title <template #title
><Icon icon="ep:checked" />{{ getTaskCollapseItemName(elementType) }}</template ><Icon icon="ep:checked" />{{ getTaskCollapseItemName(elementType) }}</template
> >
<element-task :id="elementId" :type="elementType" /> <element-task :id="elementId" :type="elementType" />
</el-collapse-item> </el-collapse-item>

View File

@ -113,7 +113,7 @@
v-if="btnDisplayNameEdit[index]" v-if="btnDisplayNameEdit[index]"
/> />
<el-button v-else text @click="changeBtnDisplayName(index)" <el-button v-else text @click="changeBtnDisplayName(index)"
>{{ item.displayName }} &nbsp;<Icon icon="ep:edit" >{{ item.displayName }} &nbsp;<Icon icon="ep:edit"
/></el-button> /></el-button>
</div> </div>
<div class="button-setting-item-label"> <div class="button-setting-item-label">
@ -128,13 +128,13 @@
<div class="setting-title-label first-title"> 字段名称 </div> <div class="setting-title-label first-title"> 字段名称 </div>
<div class="other-titles"> <div class="other-titles">
<span class="setting-title-label cursor-pointer" @click="updatePermission('READ')" <span class="setting-title-label cursor-pointer" @click="updatePermission('READ')"
>只读</span >只读</span
> >
<span class="setting-title-label cursor-pointer" @click="updatePermission('WRITE')" <span class="setting-title-label cursor-pointer" @click="updatePermission('WRITE')"
>可编辑</span >可编辑</span
> >
<span class="setting-title-label cursor-pointer" @click="updatePermission('NONE')" <span class="setting-title-label cursor-pointer" @click="updatePermission('NONE')"
>隐藏</span >隐藏</span
> >
</div> </div>
</div> </div>

View File

@ -12,11 +12,11 @@
<el-table-column label="操作" width="100px"> <el-table-column label="操作" width="100px">
<template #default="scope"> <template #default="scope">
<el-button size="small" link @click="openListenerForm(scope.row, scope.$index)" <el-button size="small" link @click="openListenerForm(scope.row, scope.$index)"
>编辑</el-button >编辑</el-button
> >
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-button size="small" link style="color: #ff4d4f" @click="removeListener(scope.$index)" <el-button size="small" link style="color: #ff4d4f" @click="removeListener(scope.$index)"
>移除</el-button >移除</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
@ -168,7 +168,7 @@
<el-table-column label="操作" width="130px"> <el-table-column label="操作" width="130px">
<template #default="scope"> <template #default="scope">
<el-button size="small" link @click="openListenerFieldForm(scope.row, scope.$index)" <el-button size="small" link @click="openListenerFieldForm(scope.row, scope.$index)"
>编辑</el-button >编辑</el-button
> >
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-button <el-button
@ -176,7 +176,7 @@
link link
style="color: #ff4d4f" style="color: #ff4d4f"
@click="removeListenerField(scope.$index)" @click="removeListenerField(scope.$index)"
>移除</el-button >移除</el-button
> >
</template> </template>
</el-table-column> </el-table-column>

View File

@ -18,7 +18,7 @@
<el-table-column label="操作" width="90px"> <el-table-column label="操作" width="90px">
<template #default="scope"> <template #default="scope">
<el-button size="small" link @click="openListenerForm(scope.row, scope.$index)" <el-button size="small" link @click="openListenerForm(scope.row, scope.$index)"
>编辑</el-button >编辑</el-button
> >
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-button <el-button
@ -26,7 +26,7 @@
link link
style="color: #ff4d4f" style="color: #ff4d4f"
@click="removeListener(scope.row, scope.$index)" @click="removeListener(scope.row, scope.$index)"
>移除</el-button >移除</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
@ -184,7 +184,7 @@
<p class="listener-filed__title"> <p class="listener-filed__title">
<span><Icon icon="ep:menu" />注入字段</span> <span><Icon icon="ep:menu" />注入字段</span>
<el-button size="small" type="primary" @click="openListenerFieldForm(null)" <el-button size="small" type="primary" @click="openListenerFieldForm(null)"
>添加字段</el-button >添加字段</el-button
> >
</p> </p>
<el-table <el-table
@ -212,7 +212,7 @@
<el-table-column label="操作" width="100px"> <el-table-column label="操作" width="100px">
<template #default="scope"> <template #default="scope">
<el-button size="small" link @click="openListenerFieldForm(scope.row, scope.$index)" <el-button size="small" link @click="openListenerFieldForm(scope.row, scope.$index)"
>编辑</el-button >编辑</el-button
> >
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-button <el-button
@ -220,7 +220,7 @@
link link
style="color: #ff4d4f" style="color: #ff4d4f"
@click="removeListenerField(scope.row, scope.$index)" @click="removeListenerField(scope.row, scope.$index)"
>移除</el-button >移除</el-button
> >
</template> </template>
</el-table-column> </el-table-column>

View File

@ -19,7 +19,7 @@
size="small" size="small"
v-if=" v-if="
item.value === ApproveMethodType.APPROVE_BY_RATIO && item.value === ApproveMethodType.APPROVE_BY_RATIO &&
approveMethod === ApproveMethodType.APPROVE_BY_RATIO approveMethod === ApproveMethodType.APPROVE_BY_RATIO
" "
@change="onApproveRatioChange" @change="onApproveRatioChange"
/> />
@ -47,7 +47,7 @@
<template <template
v-if=" v-if="
loopCharacteristics === 'ParallelMultiInstance' || loopCharacteristics === 'ParallelMultiInstance' ||
loopCharacteristics === 'SequentialMultiInstance' loopCharacteristics === 'SequentialMultiInstance'
" "
> >
<el-form-item label="循环数量" key="loopCardinality"> <el-form-item label="循环数量" key="loopCardinality">

View File

@ -141,8 +141,8 @@ watch(
.header-editor { .header-editor {
.header-list { .header-list {
max-height: 400px; max-height: 400px;
overflow-y: auto;
margin-bottom: 16px; margin-bottom: 16px;
overflow-y: auto;
} }
.header-item { .header-item {
@ -156,8 +156,8 @@ watch(
} }
.separator { .separator {
color: #606266;
font-weight: 500; font-weight: 500;
color: #606266;
} }
.header-value { .header-value {

View File

@ -33,8 +33,8 @@
<el-form-item <el-form-item
v-if=" v-if="
userTaskForm.candidateStrategy == CandidateStrategy.DEPT_MEMBER || userTaskForm.candidateStrategy == CandidateStrategy.DEPT_MEMBER ||
userTaskForm.candidateStrategy == CandidateStrategy.DEPT_LEADER || userTaskForm.candidateStrategy == CandidateStrategy.DEPT_LEADER ||
userTaskForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER userTaskForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER
" "
label="指定部门" label="指定部门"
prop="candidateParam" prop="candidateParam"
@ -152,9 +152,9 @@
<el-form-item <el-form-item
v-if=" v-if="
userTaskForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER || userTaskForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER ||
userTaskForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER || userTaskForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER ||
userTaskForm.candidateStrategy == CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER || userTaskForm.candidateStrategy == CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER ||
userTaskForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER userTaskForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER
" "
:label="deptLevelLabel!" :label="deptLevelLabel!"
prop="deptLevel" prop="deptLevel"

View File

@ -24,7 +24,7 @@
<el-radio-group v-model="cronMode[f.key]" :key="'radio-' + f.key"> <el-radio-group v-model="cronMode[f.key]" :key="'radio-' + f.key">
<el-radio label="every" :key="'every-' + f.key">{{ f.label }}</el-radio> <el-radio label="every" :key="'every-' + f.key">{{ f.label }}</el-radio>
<el-radio label="range" :key="'range-' + f.key" <el-radio label="range" :key="'range-' + f.key"
> >
<el-input-number <el-input-number
v-model="cronRange[f.key][0]" v-model="cronRange[f.key][0]"
:min="f.min" :min="f.min"
@ -45,7 +45,7 @@
之间每{{ f.label }}</el-radio 之间每{{ f.label }}</el-radio
> >
<el-radio label="step" :key="'step-' + f.key" <el-radio label="step" :key="'step-' + f.key"
>从第 >从第
<el-input-number <el-input-number
v-model="cronStep[f.key][0]" v-model="cronStep[f.key][0]"
:min="f.min" :min="f.min"
@ -74,7 +74,7 @@
v-for="n in f.max + 1" v-for="n in f.max + 1"
:label="pad(n - 1)" :label="pad(n - 1)"
:key="'cb-' + f.key + '-' + (n - 1)" :key="'cb-' + f.key + '-' + (n - 1)"
>{{ pad(n - 1) }}</el-checkbox >{{ pad(n - 1) }}</el-checkbox
> >
</el-checkbox-group> </el-checkbox-group>
</div> </div>
@ -91,71 +91,71 @@
/> />
</div> </div>
<div style="margin-bottom: 10px" <div style="margin-bottom: 10px"
>循环次数<el-input-number v-model="repeat" :min="1" style="width: 100px" :key="'repeat'" >循环次数<el-input-number v-model="repeat" :min="1" style="width: 100px" :key="'repeat'"
/></div> /></div>
<div style="margin-bottom: 10px" <div style="margin-bottom: 10px"
>日期时间<el-date-picker >日期时间<el-date-picker
v-model="isoDate" v-model="isoDate"
type="datetime" type="datetime"
placeholder="选择日期时间" placeholder="选择日期时间"
style="width: 200px" style="width: 200px"
:key="'isoDate'" :key="'isoDate'"
/></div> /></div>
<div style="margin-bottom: 10px" <div style="margin-bottom: 10px"
>当前时长<el-input >当前时长<el-input
v-model="isoDuration" v-model="isoDuration"
placeholder="如P3DT30M30S" placeholder="如P3DT30M30S"
style="width: 200px" style="width: 200px"
:key="'isoDuration'" :key="'isoDuration'"
/></div> /></div>
<div> <div>
<div <div
><el-button ><el-button
v-for="s in [5, 10, 30, 50]" v-for="s in [5, 10, 30, 50]"
@click="setDuration('S', s)" @click="setDuration('S', s)"
:key="'sec-' + s" :key="'sec-' + s"
>{{ s }}</el-button >{{ s }}</el-button
>自定义</div >自定义</div
> >
<div <div
><el-button ><el-button
v-for="m in [5, 10, 30, 50]" v-for="m in [5, 10, 30, 50]"
@click="setDuration('M', m)" @click="setDuration('M', m)"
:key="'min-' + m" :key="'min-' + m"
>{{ m }}</el-button >{{ m }}</el-button
>自定义</div >自定义</div
> >
<div <div
>小时<el-button >小时<el-button
v-for="h in [4, 8, 12, 24]" v-for="h in [4, 8, 12, 24]"
@click="setDuration('H', h)" @click="setDuration('H', h)"
:key="'hour-' + h" :key="'hour-' + h"
>{{ h }}</el-button >{{ h }}</el-button
>自定义</div >自定义</div
> >
<div <div
><el-button ><el-button
v-for="d in [1, 2, 3, 4]" v-for="d in [1, 2, 3, 4]"
@click="setDuration('D', d)" @click="setDuration('D', d)"
:key="'day-' + d" :key="'day-' + d"
>{{ d }}</el-button >{{ d }}</el-button
>自定义</div >自定义</div
> >
<div <div
><el-button ><el-button
v-for="mo in [1, 2, 3, 4]" v-for="mo in [1, 2, 3, 4]"
@click="setDuration('M', mo)" @click="setDuration('M', mo)"
:key="'mon-' + mo" :key="'mon-' + mo"
>{{ mo }}</el-button >{{ mo }}</el-button
>自定义</div >自定义</div
> >
<div <div
><el-button ><el-button
v-for="y in [1, 2, 3, 4]" v-for="y in [1, 2, 3, 4]"
@click="setDuration('Y', y)" @click="setDuration('Y', y)"
:key="'year-' + y" :key="'year-' + y"
>{{ y }}</el-button >{{ y }}</el-button
>自定义</div >自定义</div
> >
</div> </div>
</el-tab-pane> </el-tab-pane>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<div style="margin-bottom: 10px" <div style="margin-bottom: 10px"
>当前选择<el-input v-model="isoString" readonly style="width: 300px" >当前选择<el-input v-model="isoString" readonly style="width: 300px"
/></div> /></div>
<div v-for="unit in units" :key="unit.key" style="margin-bottom: 8px"> <div v-for="unit in units" :key="unit.key" style="margin-bottom: 8px">
<span>{{ unit.label }}</span> <span>{{ unit.label }}</span>
@ -11,7 +11,7 @@
:key="val" :key="val"
size="mini" size="mini"
@click="setUnit(unit.key, val)" @click="setUnit(unit.key, val)"
>{{ val }}</el-button >{{ val }}</el-button
> >
<el-input <el-input
v-model.number="custom[unit.key]" v-model.number="custom[unit.key]"

View File

@ -4,21 +4,21 @@
<span>类型</span> <span>类型</span>
<el-button-group> <el-button-group>
<el-button size="mini" :type="type === 'time' ? 'primary' : ''" @click="setType('time')" <el-button size="mini" :type="type === 'time' ? 'primary' : ''" @click="setType('time')"
>时间</el-button >时间</el-button
> >
<el-button <el-button
size="mini" size="mini"
:type="type === 'duration' ? 'primary' : ''" :type="type === 'duration' ? 'primary' : ''"
@click="setType('duration')" @click="setType('duration')"
>持续</el-button >持续</el-button
> >
<el-button size="mini" :type="type === 'cycle' ? 'primary' : ''" @click="setType('cycle')" <el-button size="mini" :type="type === 'cycle' ? 'primary' : ''" @click="setType('cycle')"
>循环</el-button >循环</el-button
> >
</el-button-group> </el-button-group>
<el-icon v-if="valid" color="green" style="margin-left: 8px"><CircleCheckFilled /></el-icon> <el-icon v-if="valid" color="green" style="margin-left: 8px"><CircleCheckFilled /></el-icon>
</div> </div>
<div style="margin-top: 10px; display: flex; align-items: center"> <div style=" display: flex;margin-top: 10px; align-items: center">
<span>条件</span> <span>条件</span>
<el-input <el-input
v-model="condition" v-model="condition"
@ -34,7 +34,7 @@
</el-tooltip> </el-tooltip>
<el-tooltip :content="helpText" placement="top"> <el-tooltip :content="helpText" placement="top">
<el-icon color="#409EFF" style="cursor: pointer" @click="showHelp = true" <el-icon color="#409EFF" style="cursor: pointer" @click="showHelp = true"
><QuestionFilled ><QuestionFilled
/></el-icon> /></el-icon>
</el-tooltip> </el-tooltip>
<el-button <el-button