chore: stylelint(use pnpm lint:style)

This commit is contained in:
xingyu 2023-08-04 21:33:00 +08:00
parent 71a874dfb4
commit 784a1be8a1
31 changed files with 296 additions and 149 deletions

View File

@ -300,12 +300,12 @@ export default defineComponent({
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.el-button.is-text) { :deep(.el-button.is-text) {
margin-left: 0;
padding: 8px 4px; padding: 8px 4px;
margin-left: 0;
} }
:deep(.el-button.is-link) { :deep(.el-button.is-link) {
margin-left: 0;
padding: 8px 4px; padding: 8px 4px;
margin-left: 0;
} }
</style> </style>

View File

@ -147,10 +147,10 @@ const listToString = (list: UploadUserFile[], separator?: string) => {
} }
:deep(.upload-file-list .el-upload-list__item) { :deep(.upload-file-list .el-upload-list__item) {
border: 1px solid #e4e7ed;
line-height: 2;
margin-bottom: 10px;
position: relative; position: relative;
margin-bottom: 10px;
line-height: 2;
border: 1px solid #e4e7ed;
} }
:deep(.el-upload-list__item-file-name) { :deep(.el-upload-list__item-file-name) {

View File

@ -229,16 +229,16 @@ const uploadError = () => {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
box-sizing: border-box;
display: flex; display: flex;
align-items: center;
justify-content: center;
width: 100%; width: 100%;
height: 100%; height: 100%;
cursor: pointer; cursor: pointer;
background: rgb(0 0 0 / 60%); background: rgb(0 0 0 / 60%);
opacity: 0; opacity: 0;
box-sizing: border-box;
transition: var(--el-transition-duration-fast); transition: var(--el-transition-duration-fast);
align-items: center;
justify-content: center;
.handle-icon { .handle-icon {
display: flex; display: flex;

View File

@ -248,16 +248,16 @@ const handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
box-sizing: border-box;
display: flex; display: flex;
align-items: center;
justify-content: center;
width: 100%; width: 100%;
height: 100%; height: 100%;
cursor: pointer; cursor: pointer;
background: rgb(0 0 0 / 60%); background: rgb(0 0 0 / 60%);
opacity: 0; opacity: 0;
box-sizing: border-box;
transition: var(--el-transition-duration-fast); transition: var(--el-transition-duration-fast);
align-items: center;
justify-content: center;
.handle-icon { .handle-icon {
display: flex; display: flex;

File diff suppressed because one or more lines are too long

View File

@ -17,7 +17,7 @@
ref="canvas" ref="canvas"
:src="'data:image/png;base64,' + pointBackImgBase" :src="'data:image/png;base64,' + pointBackImgBase"
alt="" alt=""
style="width: 100%; height: 100%; display: block" style="display: block; width: 100%; height: 100%"
@click="bindingClick ? canvasClick($event) : undefined" @click="bindingClick ? canvasClick($event) : undefined"
/> />

View File

@ -9,7 +9,7 @@
<img <img
:src="'data:image/png;base64,' + backImgBase" :src="'data:image/png;base64,' + backImgBase"
alt="" alt=""
style="width: 100%; height: 100%; display: block" style="display: block; width: 100%; height: 100%"
/> />
<div v-show="showRefresh" class="verify-refresh" @click="refresh"> <div v-show="showRefresh" class="verify-refresh" @click="refresh">
<i class="iconfont icon-refresh"></i> <i class="iconfont icon-refresh"></i>
@ -63,7 +63,7 @@
<img <img
:src="'data:image/png;base64,' + blockBackImgBase" :src="'data:image/png;base64,' + blockBackImgBase"
alt="" alt=""
style="width: 100%; height: 100%; display: block; -webkit-user-drag: none" style="display: block; width: 100%; height: 100%; -webkit-user-drag: none"
/> />
</div> </div>
</div> </div>

View File

@ -39,12 +39,12 @@ const getBindValue = computed(() => {
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.el-button.is-text) { :deep(.el-button.is-text) {
margin-left: 0;
padding: 8px 4px; padding: 8px 4px;
margin-left: 0;
} }
:deep(.el-button.is-link) { :deep(.el-button.is-link) {
margin-left: 0;
padding: 8px 4px; padding: 8px 4px;
margin-left: 0;
} }
</style> </style>

View File

@ -38,12 +38,12 @@ const getBindValue = computed(() => {
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.el-button.is-text) { :deep(.el-button.is-text) {
margin-left: 0;
padding: 8px 4px; padding: 8px 4px;
margin-left: 0;
} }
:deep(.el-button.is-link) { :deep(.el-button.is-link) {
margin-left: 0;
padding: 8px 4px; padding: 8px 4px;
margin-left: 0;
} }
</style> </style>

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="my-process-designer"> <div class="my-process-designer">
<div class="my-process-designer__header" style="display: table-row-group; z-index: 999"> <div class="my-process-designer__header" style="z-index: 999; display: table-row-group">
<slot name="control-header"></slot> <slot name="control-header"></slot>
<template v-if="!$slots['control-header']"> <template v-if="!$slots['control-header']">
<ElButtonGroup key="file-control"> <ElButtonGroup key="file-control">

View File

@ -565,11 +565,11 @@ watch(
} }
.element-overlays { .element-overlays {
box-sizing: border-box; width: 200px;
padding: 8px; padding: 8px;
color: #fafafa;
background: rgb(0 0 0 / 60%); background: rgb(0 0 0 / 60%);
border-radius: 4px; border-radius: 4px;
color: #fafafa; box-sizing: border-box;
width: 200px;
} }
</style> </style>

View File

@ -31,15 +31,15 @@ const addTask = (event, options: any = {}) => {
<style scoped lang="scss"> <style scoped lang="scss">
.my-process-palette { .my-process-palette {
box-sizing: border-box;
padding: 80px 20px 20px; padding: 80px 20px 20px;
box-sizing: border-box;
.test-button { .test-button {
box-sizing: border-box;
padding: 8px 16px; padding: 8px 16px;
border-radius: 4px;
border: 1px solid rgb(24 144 255 / 80%);
cursor: pointer; cursor: pointer;
border: 1px solid rgb(24 144 255 / 80%);
border-radius: 4px;
box-sizing: border-box;
} }
} }
</style> </style>

View File

@ -71,7 +71,7 @@ onMounted(() => {
</ElTabPane> </ElTabPane>
</ElTabs> </ElTabs>
<!-- 更多 --> <!-- 更多 -->
<div style="text-align: right; margin-top: 10px"> <div style="margin-top: 10px; text-align: right">
<XButton preIcon="ep:view" title="查看全部" type="primary" @click="goMyList" /> <XButton preIcon="ep:view" title="查看全部" type="primary" @click="goMyList" />
</div> </div>
</ElPopover> </ElPopover>

View File

@ -9,13 +9,13 @@
label-width="120px" label-width="120px"
size="large" size="large"
> >
<el-row style="margin-left: -10px; margin-right: -10px"> <el-row style="margin-right: -10px; margin-left: -10px">
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<LoginFormTitle style="width: 100%" /> <LoginFormTitle style="width: 100%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item v-if="loginData.tenantEnable === 'true'" prop="tenantName"> <el-form-item v-if="loginData.tenantEnable === 'true'" prop="tenantName">
<el-input <el-input
v-model="loginData.loginForm.tenantName" v-model="loginData.loginForm.tenantName"
@ -26,7 +26,7 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
v-model="loginData.loginForm.username" v-model="loginData.loginForm.username"
@ -35,7 +35,7 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item prop="password"> <el-form-item prop="password">
<el-input <el-input
v-model="loginData.loginForm.password" v-model="loginData.loginForm.password"
@ -49,7 +49,7 @@
</el-col> </el-col>
<el-col <el-col
:span="24" :span="24"
style="padding-left: 10px; padding-right: 10px; margin-top: -20px; margin-bottom: -20px" style="padding-right: 10px; padding-left: 10px; margin-top: -20px; margin-bottom: -20px"
> >
<el-form-item> <el-form-item>
<el-row justify="space-between" style="width: 100%"> <el-row justify="space-between" style="width: 100%">
@ -64,7 +64,7 @@
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<XButton <XButton
:loading="loginLoading" :loading="loginLoading"
@ -82,7 +82,7 @@
mode="pop" mode="pop"
@success="handleLogin" @success="handleLogin"
/> />
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<el-row :gutter="5" justify="space-between" style="width: 100%"> <el-row :gutter="5" justify="space-between" style="width: 100%">
<el-col :span="8"> <el-col :span="8">
@ -110,7 +110,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-divider content-position="center">{{ t('login.otherLogin') }}</el-divider> <el-divider content-position="center">{{ t('login.otherLogin') }}</el-divider>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<div class="flex justify-between w-[100%]"> <div class="flex justify-between w-[100%]">
<Icon <Icon
@ -126,7 +126,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-divider content-position="center">萌新必读</el-divider> <el-divider content-position="center">萌新必读</el-divider>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<div class="flex justify-between w-[100%]"> <div class="flex justify-between w-[100%]">
<el-link href="https://doc.iocoder.cn/" target="_blank">📚开发指南</el-link> <el-link href="https://doc.iocoder.cn/" target="_blank">📚开发指南</el-link>
@ -316,16 +316,16 @@ onMounted(() => {
} }
.login-code { .login-code {
float: right;
width: 100%; width: 100%;
height: 38px; height: 38px;
float: right;
img { img {
cursor: pointer;
width: 100%; width: 100%;
max-width: 100px;
height: auto; height: auto;
max-width: 100px;
vertical-align: middle; vertical-align: middle;
cursor: pointer;
} }
} }
</style> </style>

View File

@ -9,14 +9,14 @@
label-width="120px" label-width="120px"
size="large" size="large"
> >
<el-row style="margin-left: -10px; margin-right: -10px"> <el-row style="margin-right: -10px; margin-left: -10px">
<!-- 租户名 --> <!-- 租户名 -->
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<LoginFormTitle style="width: 100%" /> <LoginFormTitle style="width: 100%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item v-if="loginData.tenantEnable === 'true'" prop="tenantName"> <el-form-item v-if="loginData.tenantEnable === 'true'" prop="tenantName">
<el-input <el-input
v-model="loginData.loginForm.tenantName" v-model="loginData.loginForm.tenantName"
@ -28,7 +28,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 手机号 --> <!-- 手机号 -->
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item prop="mobileNumber"> <el-form-item prop="mobileNumber">
<el-input <el-input
v-model="loginData.loginForm.mobileNumber" v-model="loginData.loginForm.mobileNumber"
@ -38,7 +38,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 验证码 --> <!-- 验证码 -->
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item prop="code"> <el-form-item prop="code">
<el-row :gutter="5" justify="space-between" style="width: 100%"> <el-row :gutter="5" justify="space-between" style="width: 100%">
<el-col :span="24"> <el-col :span="24">
@ -68,7 +68,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 登录按钮 / 返回按钮 --> <!-- 登录按钮 / 返回按钮 -->
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<XButton <XButton
:loading="loginLoading" :loading="loginLoading"
@ -79,7 +79,7 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item> <el-form-item>
<XButton <XButton
:loading="loginLoading" :loading="loginLoading"

View File

@ -1,15 +1,15 @@
<template> <template>
<el-row v-show="getShow" style="margin-left: -10px; margin-right: -10px"> <el-row v-show="getShow" style="margin-right: -10px; margin-left: -10px">
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<LoginFormTitle style="width: 100%" /> <LoginFormTitle style="width: 100%" />
</el-col> </el-col>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-card class="mb-10px text-center" shadow="hover"> <el-card class="mb-10px text-center" shadow="hover">
<Qrcode :logo="logoImg" /> <Qrcode :logo="logoImg" />
</el-card> </el-card>
</el-col> </el-col>
<el-divider class="enter-x">{{ t('login.qrcode') }}</el-divider> <el-divider class="enter-x">{{ t('login.qrcode') }}</el-divider>
<el-col :span="24" style="padding-left: 10px; padding-right: 10px"> <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<div class="w-[100%] mt-15px"> <div class="w-[100%] mt-15px">
<XButton :title="t('login.backLogin')" class="w-[100%]" @click="handleBackLogin()" /> <XButton :title="t('login.backLogin')" class="w-[100%]" @click="handleBackLogin()" />
</div> </div>

View File

@ -54,8 +54,8 @@ const activeName = ref('basicInfo')
.profile-tabs > .el-tabs__content { .profile-tabs > .el-tabs__content {
padding: 32px; padding: 32px;
color: #6b778c;
font-weight: 600; font-weight: 600;
color: #6b778c;
} }
.el-tabs--left .el-tabs__content { .el-tabs--left .el-tabs__content {

View File

@ -67,17 +67,17 @@ onMounted(async () => {
<style scoped> <style scoped>
.text-center { .text-center {
text-align: center;
position: relative; position: relative;
height: 120px; height: 120px;
text-align: center;
} }
.list-group-striped > .list-group-item { .list-group-striped > .list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0; padding-right: 0;
padding-left: 0;
border-right: 0;
border-left: 0;
border-radius: 0;
} }
.list-group { .list-group {
@ -86,11 +86,11 @@ onMounted(async () => {
} }
.list-group-item { .list-group-item {
border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0; padding: 11px 0;
margin-bottom: -1px;
font-size: 13px; font-size: 13px;
border-top: 1px solid #e7eaec;
border-bottom: 1px solid #e7eaec;
} }
.pull-right { .pull-right {

View File

@ -99,7 +99,7 @@ onMounted(async () => {
<style lang="scss"> <style lang="scss">
.process-panel__container { .process-panel__container {
position: absolute; position: absolute;
right: 60px;
top: 90px; top: 90px;
right: 60px;
} }
</style> </style>

View File

@ -14,24 +14,24 @@
> >
<p style="font-weight: 700">任务{{ item.name }}</p> <p style="font-weight: 700">任务{{ item.name }}</p>
<el-card :body-style="{ padding: '10px' }"> <el-card :body-style="{ padding: '10px' }">
<label v-if="item.assigneeUser" style="font-weight: normal; margin-right: 30px"> <label v-if="item.assigneeUser" style="margin-right: 30px; font-weight: normal">
审批人{{ item.assigneeUser.nickname }} 审批人{{ item.assigneeUser.nickname }}
<el-tag size="small" type="info">{{ item.assigneeUser.deptName }}</el-tag> <el-tag size="small" type="info">{{ item.assigneeUser.deptName }}</el-tag>
</label> </label>
<label v-if="item.createTime" style="font-weight: normal">创建时间</label> <label v-if="item.createTime" style="font-weight: normal">创建时间</label>
<label style="color: #8a909c; font-weight: normal"> <label style="font-weight: normal; color: #8a909c">
{{ formatDate(item?.createTime) }} {{ formatDate(item?.createTime) }}
</label> </label>
<label v-if="item.endTime" style="margin-left: 30px; font-weight: normal"> <label v-if="item.endTime" style="margin-left: 30px; font-weight: normal">
审批时间 审批时间
</label> </label>
<label v-if="item.endTime" style="color: #8a909c; font-weight: normal"> <label v-if="item.endTime" style="font-weight: normal; color: #8a909c">
{{ formatDate(item?.endTime) }} {{ formatDate(item?.endTime) }}
</label> </label>
<label v-if="item.durationInMillis" style="margin-left: 30px; font-weight: normal"> <label v-if="item.durationInMillis" style="margin-left: 30px; font-weight: normal">
耗时 耗时
</label> </label>
<label v-if="item.durationInMillis" style="color: #8a909c; font-weight: normal"> <label v-if="item.durationInMillis" style="font-weight: normal; color: #8a909c">
{{ formatPast2(item?.durationInMillis) }} {{ formatPast2(item?.durationInMillis) }}
</label> </label>
<p v-if="item.reason"> <p v-if="item.reason">

View File

@ -32,7 +32,7 @@
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px"> <div style="margin-bottom: 20px; margin-left: 10%; font-size: 14px">
<el-button type="success" @click="handleAudit(item, true)"> <el-button type="success" @click="handleAudit(item, true)">
<Icon icon="ep:select" /> <Icon icon="ep:select" />
通过 通过

View File

@ -215,8 +215,8 @@ onMounted(async () => {
<style lang="scss"> <style lang="scss">
.app-infra-codegen-preview-container { .app-infra-codegen-preview-container {
.el-scrollbar .el-scrollbar__wrap .el-scrollbar__view { .el-scrollbar .el-scrollbar__wrap .el-scrollbar__view {
white-space: nowrap;
display: inline-block; display: inline-block;
white-space: nowrap;
} }
} }
</style> </style>

View File

@ -336,7 +336,7 @@
> >
<el-option v-for="item in productSpus" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in productSpus" :key="item.id" :label="item.name" :value="item.id">
<span style="float: left">{{ item.name }}</span> <span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px" <span style="float: right; font-size: 13px; color: #8492a6"
>{{ (item.minPrice / 100.0).toFixed(2) }}</span >{{ (item.minPrice / 100.0).toFixed(2) }}</span
> >
</el-option> </el-option>

View File

@ -341,12 +341,12 @@ const clipboardSuccess = () => {
align-items: center; align-items: center;
&::before { &::before {
content: '';
display: inline-block; display: inline-block;
margin-right: 10px;
width: 3px; width: 3px;
height: 20px; height: 20px;
margin-right: 10px;
background-color: #409eff; background-color: #409eff;
content: '';
} }
} }

View File

@ -52,11 +52,11 @@ const getNickname = (sendFrom: SendFrom) =>
<style lang="scss" scoped> <style lang="scss" scoped>
/* 因为 joolun 实现依赖 avue 组件,该页面使用了 comment.scss、card.scc */ /* 因为 joolun 实现依赖 avue 组件,该页面使用了 comment.scss、card.scc */
@import '../comment.scss'; @import url('../comment.scss');
@import '../card.scss'; @import url('../card.scss');
.avatar-div { .avatar-div {
text-align: center;
width: 80px; width: 80px;
text-align: center;
} }
</style> </style>

View File

@ -174,10 +174,10 @@ const scrollToBottom = async () => {
<style lang="scss" scoped> <style lang="scss" scoped>
.msg-div { .msg-div {
height: 50vh; height: 50vh;
margin-right: 10px;
margin-left: 10px;
overflow: auto; overflow: auto;
background-color: #eaeaea; background-color: #eaeaea;
margin-left: 10px;
margin-right: 10px;
} }
.msg-send { .msg-send {

View File

@ -58,5 +58,5 @@ defineExpose({
<style lang="scss" scoped> <style lang="scss" scoped>
/* 因为 joolun 实现依赖 avue 组件,该页面使用了 card.scss */ /* 因为 joolun 实现依赖 avue 组件,该页面使用了 card.scss */
@import '../wx-msg/card.scss'; @import url('../wx-msg/card.scss');
</style> </style>

View File

@ -219,8 +219,8 @@ const onChildDragEnd = ({ newIndex }) => {
} }
.draggable-ghost { .draggable-ghost {
opacity: 0.5;
background: #f7fafc; background: #f7fafc;
border: 1px solid #4299e1; border: 1px solid #4299e1;
opacity: 0.5;
} }
</style> </style>

View File

@ -333,7 +333,7 @@ onMounted(async () => {
</script> </script>
<style> <style>
.order-font { .order-font {
font-size: 12px;
padding: 2px 0; padding: 2px 0;
font-size: 12px;
} }
</style> </style>

View File

@ -338,7 +338,7 @@ onMounted(async () => {
<style> <style>
.order-font { .order-font {
font-size: 12px;
padding: 2px 0; padding: 2px 0;
font-size: 12px;
} }
</style> </style>

View File

@ -1,42 +1,43 @@
module.exports = { module.exports = {
root: true, root: true,
plugins: ['stylelint-order'], plugins: ['stylelint-order'],
extends: ['stylelint-config-standard'],
customSyntax: 'postcss-html', customSyntax: 'postcss-html',
extends: ['stylelint-config-standard'],
rules: { rules: {
'function-no-unknown': null,
'selector-class-pattern': null,
'selector-pseudo-class-no-unknown': [ 'selector-pseudo-class-no-unknown': [
true, true,
{ {
ignorePseudoClasses: ['global'] ignorePseudoClasses: ['global', 'deep']
}
],
'selector-pseudo-element-no-unknown': [
true,
{
ignorePseudoElements: ['v-deep']
} }
], ],
'at-rule-no-unknown': [ 'at-rule-no-unknown': [
true, true,
{ {
ignoreAtRules: ['tailwind', 'apply', 'variants', 'responsive', 'screen', 'function', 'if', 'each', 'include', 'mixin'] ignoreAtRules: ['function', 'if', 'each', 'include', 'mixin']
} }
], ],
// 命名规范
"selector-class-pattern": null,
'no-empty-source': null, 'no-empty-source': null,
'import-notation': null,
'named-grid-areas-no-invalid': null, 'named-grid-areas-no-invalid': null,
'unicode-bom': 'never',
'no-descending-specificity': null, 'no-descending-specificity': null,
'font-family-no-missing-generic-family-keyword': null, 'font-family-no-missing-generic-family-keyword': null,
// 'declaration-block-trailing-semicolon': 'always', 'declaration-colon-space-after': 'always-single-line',
'declaration-colon-space-before': 'never',
'declaration-block-trailing-semicolon': null,
'rule-empty-line-before': [ 'rule-empty-line-before': [
'always', 'always',
{ {
ignore: ['after-comment', 'first-nested'] ignore: ['after-comment', 'first-nested']
} }
], ],
'unit-no-unknown': [true, { ignoreUnits: ['rpx'] }], 'unit-no-unknown': [
true,
{
ignoreUnits: ['rpx']
}
],
'order/order': [ 'order/order': [
[ [
'dollar-variables', 'dollar-variables',
@ -53,14 +54,165 @@ module.exports = {
}, },
'rules' 'rules'
], ],
{ severity: 'warning' } {
severity: 'warning'
}
],
// Specify the alphabetical order of the attributes in the declaration block
'order/properties-order': [
'position',
'top',
'right',
'bottom',
'left',
'z-index',
'display',
'float',
'width',
'height',
'max-width',
'max-height',
'min-width',
'min-height',
'padding',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left',
'margin',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
'margin-collapse',
'margin-top-collapse',
'margin-right-collapse',
'margin-bottom-collapse',
'margin-left-collapse',
'overflow',
'overflow-x',
'overflow-y',
'clip',
'clear',
'font',
'font-family',
'font-size',
'font-smoothing',
'osx-font-smoothing',
'font-style',
'font-weight',
'hyphens',
'src',
'line-height',
'letter-spacing',
'word-spacing',
'color',
'text-align',
'text-decoration',
'text-indent',
'text-overflow',
'text-rendering',
'text-size-adjust',
'text-shadow',
'text-transform',
'word-break',
'word-wrap',
'white-space',
'vertical-align',
'list-style',
'list-style-type',
'list-style-position',
'list-style-image',
'pointer-events',
'cursor',
'background',
'background-attachment',
'background-color',
'background-image',
'background-position',
'background-repeat',
'background-size',
'border',
'border-collapse',
'border-top',
'border-right',
'border-bottom',
'border-left',
'border-color',
'border-image',
'border-top-color',
'border-right-color',
'border-bottom-color',
'border-left-color',
'border-spacing',
'border-style',
'border-top-style',
'border-right-style',
'border-bottom-style',
'border-left-style',
'border-width',
'border-top-width',
'border-right-width',
'border-bottom-width',
'border-left-width',
'border-radius',
'border-top-right-radius',
'border-bottom-right-radius',
'border-bottom-left-radius',
'border-top-left-radius',
'border-radius-topright',
'border-radius-bottomright',
'border-radius-bottomleft',
'border-radius-topleft',
'content',
'quotes',
'outline',
'outline-offset',
'opacity',
'filter',
'visibility',
'size',
'zoom',
'transform',
'box-align',
'box-flex',
'box-orient',
'box-pack',
'box-shadow',
'box-sizing',
'table-layout',
'animation',
'animation-delay',
'animation-duration',
'animation-iteration-count',
'animation-name',
'animation-play-state',
'animation-timing-function',
'animation-fill-mode',
'transition',
'transition-delay',
'transition-duration',
'transition-property',
'transition-timing-function',
'background-clip',
'backface-visibility',
'resize',
'appearance',
'user-select',
'interpolation-mode',
'direction',
'marks',
'page',
'set-link-source',
'unicode-bidi',
'speak'
] ]
}, },
ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'], ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'],
overrides: [ overrides: [
{ {
files: ['*.vue', '**/*.vue', '*.html', '**/*.html'], files: ['*.vue', '**/*.vue', '*.html', '**/*.html'],
extends: ['stylelint-config-recommended'], extends: ['stylelint-config-recommended', 'stylelint-config-html'],
rules: { rules: {
'keyframes-name-pattern': null, 'keyframes-name-pattern': null,
'selector-pseudo-class-no-unknown': [ 'selector-pseudo-class-no-unknown': [
@ -76,11 +228,6 @@ module.exports = {
} }
] ]
} }
},
{
files: ['*.less', '**/*.less'],
customSyntax: 'postcss-less',
extends: ['stylelint-config-standard', 'stylelint-config-recommended-vue']
} }
] ]
} }