Merge remote-tracking branch 'origin/dev' into dev-cicd
This commit is contained in:
@@ -1,5 +1,55 @@
|
||||
module.exports = {
|
||||
presets: [
|
||||
'@vue/cli-plugin-babel/preset'
|
||||
]
|
||||
'@vue/cli-plugin-babel/preset',
|
||||
[
|
||||
'@babel/env',
|
||||
{
|
||||
loose: true,
|
||||
modules: false
|
||||
}
|
||||
],
|
||||
'@babel/typescript'
|
||||
],
|
||||
plugins: [
|
||||
'@vue/babel-plugin-jsx',
|
||||
'@babel/proposal-class-properties',
|
||||
'@babel/transform-runtime',
|
||||
'lodash'
|
||||
],
|
||||
overrides: [
|
||||
{
|
||||
test: /\.vue$/,
|
||||
plugins: [
|
||||
'@babel/transform-typescript'
|
||||
]
|
||||
}
|
||||
],
|
||||
env: {
|
||||
utils: {
|
||||
ignore: [
|
||||
'**/*.test.ts',
|
||||
'**/*.spec.ts'
|
||||
],
|
||||
presets: [
|
||||
[
|
||||
'@babel/env',
|
||||
{
|
||||
loose: true,
|
||||
modules: false
|
||||
}
|
||||
]
|
||||
],
|
||||
plugins: [
|
||||
[
|
||||
'babel-plugin-module-resolver',
|
||||
{
|
||||
root: ['element-plus'],
|
||||
alias: {
|
||||
'@element-plus': 'element-plus/lib'
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
43
build/bincomp.js
Normal file
43
build/bincomp.js
Normal file
@@ -0,0 +1,43 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const cp = require('child_process')
|
||||
const { getPackagesSync } = require('@lerna/project')
|
||||
const ora = require('ora')
|
||||
const chalk = require('chalk')
|
||||
|
||||
const spinner = ora(`${chalk.blue('Building...')}`).start()
|
||||
const pkgs = getPackagesSync()
|
||||
.map(pkg => pkg.name)
|
||||
.filter(name =>
|
||||
name.includes('@element-plus') &&
|
||||
!name.includes('transition') &&
|
||||
!name.includes('utils'),
|
||||
)
|
||||
const STEP = 4
|
||||
const START = 0
|
||||
const buildChild = (start, end) => {
|
||||
let s = start
|
||||
let e = end
|
||||
const c1 = cp.spawn('node', ['./build/build.component.js', s, e])
|
||||
c1.stdout.on('data', function (data) {
|
||||
spinner.info(`${chalk.blue(data)}`)
|
||||
})
|
||||
|
||||
c1.stderr.on('data', function (data) {
|
||||
spinner.warn(`${chalk.red(data)}`)
|
||||
})
|
||||
|
||||
c1.on('close', function (code) {
|
||||
s += STEP
|
||||
e += STEP
|
||||
if (s > pkgs.length) {
|
||||
spinner.succeed(`${chalk.green('Build done. Exit code ' + code)}`)
|
||||
return
|
||||
}
|
||||
buildChild(s, e)
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @link https://github.com/ezolenko/rollup-plugin-typescript2/issues/177
|
||||
*/
|
||||
buildChild(START, STEP)
|
||||
64
build/build-helper.js
Normal file
64
build/build-helper.js
Normal file
@@ -0,0 +1,64 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const helper = require('components-helper')
|
||||
const { name, version } = require('../package.json')
|
||||
const icon = require('../website/icon.json')
|
||||
const icons = icon.map(item => 'el-icon-' + item).join('/')
|
||||
const tagVer = process.env.TAG_VERSION
|
||||
const _version = tagVer ? tagVer.startsWith('v') ? tagVer.slice(1) : tagVer : version
|
||||
|
||||
helper({
|
||||
name,
|
||||
version: _version,
|
||||
entry: 'website/docs/en-US/!(custom-theme|datetime-picker|i18n|installation|message-box|message|migration-from-2.x|notification|quickstart|transition|typography).md',
|
||||
outDir: 'lib',
|
||||
reComponentName,
|
||||
reDocUrl,
|
||||
reAttribute,
|
||||
props: 'Attributes',
|
||||
propsName: 'Attribute',
|
||||
propsOptions: 'Accepted Values',
|
||||
eventsName: 'Event Name',
|
||||
tableRegExp: '#+\\s+(.*\\s*Attributes|.*\\s*Events|.*\\s*Slots|.*\\s*Directives)\\s*\\n+(\\|?.+\\|.+)\\n\\|?\\s*:?-+:?\\s*\\|.+((\\n\\|?.+\\|.+)+)',
|
||||
})
|
||||
|
||||
function reComponentName(title) {
|
||||
return 'el-' + title.replace(/\B([A-Z])/g, '-$1').replace(/[ ]+/g, '-').toLowerCase()
|
||||
}
|
||||
|
||||
function reDocUrl(fileName, header) {
|
||||
const docs = 'https://element-plus.org/#/en-US/component/'
|
||||
const _header = header ? header.replace(/[ ]+/g, '-').toLowerCase() : undefined
|
||||
return docs + fileName + (_header ? '#' + _header : '')
|
||||
}
|
||||
|
||||
function reAttribute(value, key, item) {
|
||||
const _value = value.match(/^\*\*(.*)\*\*$/)
|
||||
const str = _value ? _value[1]: value
|
||||
|
||||
if (key === 'Accepted Values' && /icon/i.test(item[0])) {
|
||||
return icons
|
||||
} else if (key === 'Name' && /^(-|—)$/.test(str)) {
|
||||
return 'default'
|
||||
} else if (str === '' || /^(-|—)$/.test(str)) {
|
||||
return undefined
|
||||
} else if (key === 'Attribute' && /v-model:(.+)/.test(str)){
|
||||
const _str = str.match(/v-model:(.+)/)
|
||||
return _str ? _str[1] : undefined
|
||||
} else if (key === 'Attribute' && /v-model/.test(str)) {
|
||||
return 'model-value'
|
||||
} else if (key === 'Attribute') {
|
||||
return str.replace(/\B([A-Z])/g, '-$1').toLowerCase()
|
||||
} else if (key === 'Type') {
|
||||
return str
|
||||
.replace(/\s*\/\s*/g, '|')
|
||||
.replace(/\s*,\s*/g, '|')
|
||||
.replace(/\(.*\)/g, '')
|
||||
.toLowerCase()
|
||||
} else if (key === 'Accepted Values') {
|
||||
return /\[.+\]\(.+\)/.test(str) || /^\*$/.test(str)
|
||||
? undefined
|
||||
: str.replace(/`/g, '')
|
||||
} else {
|
||||
return str
|
||||
}
|
||||
}
|
||||
39
build/build-locale.js
Normal file
39
build/build-locale.js
Normal file
@@ -0,0 +1,39 @@
|
||||
/* eslint-disable */
|
||||
const fs = require('fs')
|
||||
const save = require('file-save')
|
||||
const { resolve, basename } = require('path')
|
||||
const localePath = resolve(__dirname, '../packages/locale/lang')
|
||||
const fileList = fs.readdirSync(localePath)
|
||||
|
||||
const transform = function(filename, name, cb) {
|
||||
require('@babel/core').transformFile(resolve(localePath, filename), {
|
||||
plugins: [
|
||||
'@babel/plugin-transform-modules-umd',
|
||||
],
|
||||
moduleId: name,
|
||||
}, cb)
|
||||
}
|
||||
|
||||
fileList
|
||||
.filter(function(file) {
|
||||
return /\.ts$/.test(file)
|
||||
})
|
||||
.forEach(function(file) {
|
||||
const name = basename(file, '.ts')
|
||||
|
||||
transform(file, name, function(err, result) {
|
||||
if (err) {
|
||||
console.error(err)
|
||||
} else {
|
||||
const code = result.code
|
||||
const transformedCode = code
|
||||
.replace('define(\"', 'define(\"element/locale/')
|
||||
.replace(
|
||||
/global\.(\S*) = mod.exports/,
|
||||
'global.ElementPlus.lang = global.ElementPlus.lang || {};\n global.ElementPlus.lang.$1 = mod.exports.default'
|
||||
)
|
||||
|
||||
save(resolve(__dirname, '../lib/umd/locale', `${name}.js`)).write(transformedCode)
|
||||
}
|
||||
})
|
||||
})
|
||||
52
build/build-util.js
Normal file
52
build/build-util.js
Normal file
@@ -0,0 +1,52 @@
|
||||
/* eslint-disable */
|
||||
const pkg = require('../package.json')
|
||||
const path = require('path')
|
||||
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
||||
const rollup = require('rollup')
|
||||
const typescript = require('rollup-plugin-typescript2')
|
||||
|
||||
const deps = Object.keys(pkg.dependencies)
|
||||
|
||||
const root = path.resolve(__dirname, '..');
|
||||
const file = process.argv[2];
|
||||
const defaultOpts = {
|
||||
input: path.resolve(root, file),
|
||||
plugins: [
|
||||
nodeResolve(),
|
||||
typescript({
|
||||
tsconfigOverride: {
|
||||
compilerOptions: {
|
||||
declaration: false,
|
||||
},
|
||||
'exclude': [
|
||||
'node_modules',
|
||||
'__tests__',
|
||||
],
|
||||
},
|
||||
abortOnError: false,
|
||||
}),
|
||||
],
|
||||
external() {
|
||||
return true
|
||||
},
|
||||
}
|
||||
|
||||
const run = async (name) => {
|
||||
const esm = {
|
||||
format: 'es',
|
||||
file: `es/${name}`,
|
||||
};
|
||||
const cjs = {
|
||||
format: 'cjs',
|
||||
file: `lib/${name}`,
|
||||
exports: 'named',
|
||||
}
|
||||
|
||||
const bundle = await rollup.rollup(defaultOpts);
|
||||
await Promise.all([bundle.write(esm), bundle.write(cjs)]);
|
||||
console.log(name, 'build finished');
|
||||
}
|
||||
|
||||
let normalizedName = file.slice(11); // remove ./packages
|
||||
|
||||
run(`${normalizedName.split('.').shift()}.js`);
|
||||
84
build/build.component.js
Normal file
84
build/build.component.js
Normal file
@@ -0,0 +1,84 @@
|
||||
/* eslint-disable */
|
||||
const pkg = require('../package.json')
|
||||
const path = require('path')
|
||||
const { getPackages } = require('@lerna/project')
|
||||
const css = require('rollup-plugin-css-only')
|
||||
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
||||
const vue = require('rollup-plugin-vue')
|
||||
const rollup = require('rollup')
|
||||
const typescript = require('rollup-plugin-typescript2')
|
||||
const { noElPrefixFile } = require('./common')
|
||||
|
||||
const deps = Object.keys(pkg.dependencies)
|
||||
|
||||
const runBuild = async () => {
|
||||
let index = 0
|
||||
const pkgs = await getPackages()
|
||||
const inputs = pkgs
|
||||
.map(pkg => pkg.name)
|
||||
.filter(name =>
|
||||
name.includes('@element-plus') &&
|
||||
!name.includes('utils'),
|
||||
).slice(process.argv[2], process.argv[3])
|
||||
|
||||
build(inputs[index])
|
||||
|
||||
async function build(name) {
|
||||
if (!name) return
|
||||
const inputOptions = {
|
||||
input: path.resolve(__dirname, `../packages/${name.split('@element-plus/')[1]}/index.ts`),
|
||||
plugins: [
|
||||
nodeResolve(),
|
||||
css(),
|
||||
vue({
|
||||
target: 'browser',
|
||||
css: false,
|
||||
}),
|
||||
typescript({
|
||||
tsconfigOverride: {
|
||||
compilerOptions: {
|
||||
declaration: false,
|
||||
},
|
||||
'exclude': [
|
||||
'node_modules',
|
||||
'__tests__',
|
||||
],
|
||||
},
|
||||
abortOnError: false,
|
||||
}),
|
||||
],
|
||||
external(id) {
|
||||
return /^vue/.test(id)
|
||||
|| /^@element-plus/.test(id)
|
||||
|| deps.some(k => new RegExp('^' + k).test(id))
|
||||
},
|
||||
}
|
||||
const getOutFile = () => {
|
||||
const compName = name.split('@element-plus/')[1]
|
||||
if(noElPrefixFile.test(name)) {
|
||||
return `lib/${compName}/index.js`
|
||||
}
|
||||
return `lib/el-${compName}/index.js`
|
||||
}
|
||||
const outOptions = {
|
||||
format: 'es',
|
||||
file: getOutFile(),
|
||||
paths(id) {
|
||||
if (/^@element-plus/.test(id)) {
|
||||
if (noElPrefixFile.test(id)) return id.replace('@element-plus', '..')
|
||||
return id.replace('@element-plus/', '../el-')
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
const bundle = await rollup.rollup(inputOptions)
|
||||
console.log(name, 'done')
|
||||
await bundle.write(outOptions)
|
||||
index++
|
||||
if (index < inputs.length) {
|
||||
await build(inputs[index])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
runBuild()
|
||||
16
build/build.comps.js
Normal file
16
build/build.comps.js
Normal file
@@ -0,0 +1,16 @@
|
||||
/* eslint-disable */
|
||||
|
||||
// name came from the terminal as `./packages/*` notation, so when resolve the name, we'd like
|
||||
// to add a `..` to do so. because the current file is under `build/`, `packages/` is at the
|
||||
// same level as `build/`,
|
||||
const run = require('./build');
|
||||
const compPath = process.argv[2]
|
||||
if (!compPath) {
|
||||
console.error('Usage: node build.js [component]')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const outPutPrefix = ['hooks', 'directives'].some((p) => compPath.includes(p)) ? '' : 'el-';
|
||||
const compName = compPath.split('/').pop()
|
||||
|
||||
run(`${outPutPrefix}${compName}/index.js`, compPath)
|
||||
5
build/build.entry.js
Normal file
5
build/build.entry.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/* eslint-disable */
|
||||
|
||||
const run = require('./build');
|
||||
|
||||
run('index.js', './packages/element-plus', true)
|
||||
81
build/build.js
Normal file
81
build/build.js
Normal file
@@ -0,0 +1,81 @@
|
||||
/* eslint-disable */
|
||||
const pkg = require('../package.json')
|
||||
const path = require('path')
|
||||
const css = require('rollup-plugin-css-only')
|
||||
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
||||
const vue = require('rollup-plugin-vue')
|
||||
const rollup = require('rollup')
|
||||
const typescript = require('rollup-plugin-typescript2')
|
||||
const { noElPrefixFile } = require('./common');
|
||||
|
||||
const deps = Object.keys(pkg.dependencies)
|
||||
|
||||
const root = path.resolve(__dirname, '..');
|
||||
|
||||
const defaultOpts = {
|
||||
plugins: [
|
||||
nodeResolve(),
|
||||
css(),
|
||||
vue({
|
||||
target: 'browser',
|
||||
css: false,
|
||||
}),
|
||||
typescript({
|
||||
tsconfigOverride: {
|
||||
compilerOptions: {
|
||||
declaration: false,
|
||||
},
|
||||
'exclude': [
|
||||
'node_modules',
|
||||
'__tests__',
|
||||
],
|
||||
},
|
||||
abortOnError: false,
|
||||
}),
|
||||
],
|
||||
external(id) {
|
||||
return /^vue/.test(id)
|
||||
|| /^@element-plus/.test(id)
|
||||
|| deps.some(k => new RegExp('^' + k).test(id))
|
||||
},
|
||||
}
|
||||
|
||||
const isPkg = (id) => {
|
||||
return id.startsWith('@element-plus')
|
||||
}
|
||||
|
||||
const isExcluded = (id) => {
|
||||
return noElPrefixFile.test(id)
|
||||
}
|
||||
|
||||
const replacePrefix = (prefix, target) => {
|
||||
return prefix + target.slice(14) // @element-plus/.length = 14
|
||||
}
|
||||
|
||||
const run = async (name, input, isRoot = false) => {
|
||||
const inputPath = `${path.resolve(root, input)}/index.ts`
|
||||
defaultOpts.input = inputPath
|
||||
|
||||
const getPaths = (id) => {
|
||||
if (isPkg(id)) {
|
||||
if (isExcluded(id)) return replacePrefix(isRoot ? './' : '../', id)
|
||||
return replacePrefix(isRoot ? './el-' : '../el-', id)
|
||||
}
|
||||
}
|
||||
const esm = {
|
||||
format: 'es',
|
||||
file: `es/${name}`,
|
||||
paths: getPaths,
|
||||
};
|
||||
const cjs = {
|
||||
format: 'cjs',
|
||||
file: `lib/${name}`,
|
||||
paths: getPaths,
|
||||
exports: 'named',
|
||||
};
|
||||
const bundle = await rollup.rollup(defaultOpts);
|
||||
await Promise.all([bundle.write(esm), bundle.write(cjs)])
|
||||
console.log(name, 'build finished');
|
||||
}
|
||||
|
||||
module.exports = run;
|
||||
3
build/common.js
Normal file
3
build/common.js
Normal file
@@ -0,0 +1,3 @@
|
||||
module.exports = {
|
||||
noElPrefixFile: /(utils|directives|hooks|locale)/,
|
||||
}
|
||||
68
build/gen-type.js
Normal file
68
build/gen-type.js
Normal file
@@ -0,0 +1,68 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const { noElPrefixFile } = require('./common')
|
||||
|
||||
const outsideImport = /import .* from '..\/(.*?)\/src\/.*/
|
||||
|
||||
// global.d.ts
|
||||
fs.copyFileSync(
|
||||
path.resolve(__dirname, '../typings/vue-shim.d.ts'),
|
||||
path.resolve(__dirname, '../lib/element-plus.d.ts'),
|
||||
)
|
||||
// index.d.ts
|
||||
const newIndexPath = path.resolve(__dirname, '../lib/index.d.ts')
|
||||
fs.copyFileSync(path.resolve(__dirname, '../lib/element-plus/index.d.ts'), newIndexPath)
|
||||
const index = fs.readFileSync(newIndexPath)
|
||||
const newIndex = index.toString().replace(/@element-plus\//g, './el-').replace('el-utils', 'utils').replace('el-locale', 'locale')
|
||||
fs.writeFileSync(newIndexPath, newIndex)
|
||||
|
||||
// remove ep
|
||||
fs.rmdirSync(path.resolve(__dirname, '../lib/element-plus'), { recursive: true })
|
||||
|
||||
// remove test-utils
|
||||
fs.rmdirSync(path.resolve(__dirname, '../lib/test-utils'), { recursive: true })
|
||||
|
||||
// component
|
||||
const libDirPath = path.resolve(__dirname, '../lib')
|
||||
fs.readdirSync(libDirPath).forEach(comp => {
|
||||
if (!noElPrefixFile.test(comp)) {
|
||||
if (fs.lstatSync(path.resolve(libDirPath, comp)).isDirectory()) {
|
||||
// rename
|
||||
const newCompName = `el-${comp}`
|
||||
fs.renameSync(path.resolve(libDirPath, comp),
|
||||
path.resolve(libDirPath, newCompName))
|
||||
// re-import
|
||||
const imp = fs.readFileSync(path.resolve(__dirname, '../lib', newCompName, 'index.d.ts')).toString()
|
||||
if(outsideImport.test(imp) || imp.includes('@element-plus/')) {
|
||||
const newImp = imp.replace(outsideImport, (i, c) => {
|
||||
return i.replace(`../${c}`, `../el-${c}`)
|
||||
}).replace(/@element-plus\//g, '../el-').replace('el-utils', 'utils').replace('el-locale', 'locale')
|
||||
fs.writeFileSync(path.resolve(__dirname, '../lib', newCompName, 'index.d.ts'), newImp)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// after components dir renamed
|
||||
fs.readdirSync(libDirPath).forEach(comp => {
|
||||
// check src/*.d.ts exist
|
||||
const srcPath = path.resolve(libDirPath, comp, './src')
|
||||
if (fs.existsSync(srcPath)) {
|
||||
if (fs.lstatSync(srcPath).isDirectory()) {
|
||||
fs.readdir(srcPath, 'utf-8', (err, data) => {
|
||||
if (err) return
|
||||
// replace all @element-plus in src/*.d.ts
|
||||
data.forEach(f => {
|
||||
if (!fs.lstatSync(path.resolve(srcPath, f)).isDirectory()) {
|
||||
const imp = fs.readFileSync(path.resolve(srcPath, f)).toString()
|
||||
if (imp.includes('@element-plus/')) {
|
||||
const newImp = imp.replace(/@element-plus\//g, '../../el-').replace('el-utils', 'utils').replace('el-locale', 'locale')
|
||||
fs.writeFileSync(path.resolve(srcPath, f), newImp)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
14
build/gen-version.js
Normal file
14
build/gen-version.js
Normal file
@@ -0,0 +1,14 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const tagVer = process.env.TAG_VERSION
|
||||
if (tagVer) {
|
||||
version = tagVer.startsWith('v') ? tagVer.slice(1) : tagVer
|
||||
} else {
|
||||
version = require('../package.json').version
|
||||
}
|
||||
fs.writeFileSync(
|
||||
path.resolve(__dirname, '../packages/element-plus/version.ts'),
|
||||
`export const version = '${version}'
|
||||
`,
|
||||
)
|
||||
4
build/getCpus.js
Normal file
4
build/getCpus.js
Normal file
@@ -0,0 +1,4 @@
|
||||
/* eslint-disable */
|
||||
const os = require('os')
|
||||
|
||||
console.log(os.cpus().length)
|
||||
4
build/getPkgs.js
Normal file
4
build/getPkgs.js
Normal file
@@ -0,0 +1,4 @@
|
||||
/* eslint-disable */
|
||||
const { getPackagesSync } = require('@lerna/project');
|
||||
|
||||
module.exports = getPackagesSync();
|
||||
47
build/rollup.config.bundle.js
Normal file
47
build/rollup.config.bundle.js
Normal file
@@ -0,0 +1,47 @@
|
||||
// import vue from 'rollup-plugin-vue'
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve'
|
||||
import path from 'path'
|
||||
// import commonjs from '@rollup/plugin-commonjs'
|
||||
import { terser } from 'rollup-plugin-terser'
|
||||
import typescript from 'rollup-plugin-typescript2'
|
||||
import pkg from '../package.json'
|
||||
const deps = Object.keys(pkg.dependencies)
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const vue = require('rollup-plugin-vue')
|
||||
|
||||
export default [
|
||||
{
|
||||
input: path.resolve(__dirname, '../packages/element-plus/index.ts'),
|
||||
output: {
|
||||
format: 'es',
|
||||
file: 'lib/index.esm.js',
|
||||
},
|
||||
plugins: [
|
||||
terser(),
|
||||
nodeResolve(),
|
||||
// commonjs(),
|
||||
vue({
|
||||
target: 'browser',
|
||||
css: false,
|
||||
exposeFilename: false,
|
||||
}),
|
||||
typescript({
|
||||
tsconfigOverride: {
|
||||
'include': [
|
||||
'packages/**/*',
|
||||
'typings/vue-shim.d.ts',
|
||||
],
|
||||
'exclude': [
|
||||
'node_modules',
|
||||
'packages/**/__tests__/*',
|
||||
],
|
||||
},
|
||||
abortOnError: false,
|
||||
}),
|
||||
],
|
||||
external(id) {
|
||||
return /^vue/.test(id)
|
||||
|| deps.some(k => new RegExp('^' + k).test(id))
|
||||
},
|
||||
},
|
||||
]
|
||||
62
build/rollup.config.js
Normal file
62
build/rollup.config.js
Normal file
@@ -0,0 +1,62 @@
|
||||
import vue from 'rollup-plugin-vue'
|
||||
import css from 'rollup-plugin-css-only'
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve'
|
||||
import esbuild from 'rollup-plugin-esbuild'
|
||||
import path from 'path'
|
||||
import { getPackagesSync } from '@lerna/project'
|
||||
import pkg from '../package.json'
|
||||
|
||||
const noElPrefixFile = /(utils|directives|hooks|locale)/
|
||||
const getOutFile = (name, dir='lib') => {
|
||||
const compName = name.split('@element-plus/')[1]
|
||||
if(noElPrefixFile.test(name)) {
|
||||
return `${dir}/${compName}/index.js`
|
||||
}
|
||||
return `${dir}/el-${compName}/index.js`
|
||||
}
|
||||
|
||||
const deps = Object.keys(pkg.dependencies)
|
||||
const inputs = getPackagesSync()
|
||||
.map(pkg => pkg.name)
|
||||
.filter(name =>
|
||||
name.includes('@element-plus') &&
|
||||
!name.includes('utils'),
|
||||
)
|
||||
|
||||
export default inputs.map(name => ({
|
||||
input: path.resolve(__dirname, `../packages/${name.split('@element-plus/')[1]}/index.ts`),
|
||||
output: [{
|
||||
format: 'es',
|
||||
file: getOutFile(name, 'es'),
|
||||
paths(id) {
|
||||
if (/^@element-plus/.test(id)) {
|
||||
if (noElPrefixFile.test(id)) return id.replace('@element-plus', '..')
|
||||
return id.replace('@element-plus/', '../el-')
|
||||
}
|
||||
},
|
||||
},{
|
||||
format: 'cjs',
|
||||
file: getOutFile(name, 'lib'),
|
||||
exports: 'named',
|
||||
paths(id) {
|
||||
if (/^@element-plus/.test(id)) {
|
||||
if (noElPrefixFile.test(id)) return id.replace('@element-plus', '..')
|
||||
return id.replace('@element-plus/', '../el-')
|
||||
}
|
||||
},
|
||||
}],
|
||||
plugins: [
|
||||
css(),
|
||||
vue({
|
||||
target: 'browser',
|
||||
css: false,
|
||||
}),
|
||||
nodeResolve(),
|
||||
esbuild(),
|
||||
],
|
||||
external(id) {
|
||||
return /^vue/.test(id)
|
||||
|| /^@element-plus/.test(id)
|
||||
|| deps.some(k => new RegExp('^' + k).test(id))
|
||||
},
|
||||
}))
|
||||
69
build/webpack.config.js
Normal file
69
build/webpack.config.js
Normal file
@@ -0,0 +1,69 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const path = require('path')
|
||||
const webpack = require('webpack')
|
||||
const { VueLoaderPlugin } = require('vue-loader')
|
||||
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||
|
||||
const libMode = process.env.LIBMODE
|
||||
const isFullMode = libMode === 'full'
|
||||
let externals = [
|
||||
{
|
||||
vue: {
|
||||
root: 'Vue',
|
||||
commonjs: 'vue',
|
||||
commonjs2: 'vue',
|
||||
},
|
||||
},
|
||||
]
|
||||
const plugins = [
|
||||
new VueLoaderPlugin(),
|
||||
// new BundleAnalyzerPlugin(),
|
||||
]
|
||||
|
||||
const entry = path.resolve(__dirname, '../packages/element-plus/index.ts')
|
||||
|
||||
if (!isFullMode) {
|
||||
externals.push({
|
||||
'@popperjs/core': '@popperjs/core',
|
||||
'async-validator': 'async-validator',
|
||||
'mitt': 'mitt',
|
||||
'normalize-wheel': 'normalize-wheel',
|
||||
'resize-observer-polyfill': 'resize-observer-polyfill',
|
||||
},
|
||||
/^dayjs.*/,
|
||||
/^lodash.*/)
|
||||
}
|
||||
|
||||
const config = {
|
||||
mode: 'production',
|
||||
entry,
|
||||
output: {
|
||||
path: path.resolve(__dirname, '../lib'),
|
||||
publicPath: '/',
|
||||
filename: isFullMode ? 'index.full.js' : 'index.js',
|
||||
libraryTarget: 'umd',
|
||||
library: 'ElementPlus',
|
||||
umdNamedDefine: true,
|
||||
globalObject: 'typeof self !== \'undefined\' ? self : this',
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.vue$/,
|
||||
use: 'vue-loader',
|
||||
},
|
||||
{
|
||||
test: /\.(ts|js)x?$/,
|
||||
exclude: /node_modules/,
|
||||
loader: 'babel-loader',
|
||||
},
|
||||
],
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.ts', '.tsx', '.js', '.json'],
|
||||
},
|
||||
externals,
|
||||
plugins,
|
||||
}
|
||||
|
||||
module.exports = config
|
||||
19
package.json
19
package.json
@@ -9,11 +9,11 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.21.1",
|
||||
"babel-plugin-lodash": "^3.3.4",
|
||||
"core-js": "^3.6.5",
|
||||
"dayjs": "^1.10.5",
|
||||
"echarts": "^5.1.1",
|
||||
"element-plus": "^1.0.2-beta.44",
|
||||
"element-ui": "^2.15.2",
|
||||
"lib-flexible": "^0.3.2",
|
||||
"lodash": "^4.17.21",
|
||||
"moment-timezone": "^0.5.33",
|
||||
@@ -28,6 +28,23 @@
|
||||
"vuex": "^4.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.12.1",
|
||||
"@babel/core": "^7.11.4",
|
||||
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
||||
"@babel/plugin-transform-runtime": "^7.12.1",
|
||||
"@babel/preset-env": "^7.11.5",
|
||||
"@babel/preset-typescript": "^7.10.4",
|
||||
"@commitlint/cli": "^9.1.2",
|
||||
"@commitlint/config-conventional": "^9.1.2",
|
||||
"@rollup/plugin-commonjs": "^15.1.0",
|
||||
"@rollup/plugin-node-resolve": "^9.0.0",
|
||||
"@rollup/plugin-typescript": "^6.0.0",
|
||||
"@types/jest": "^26.0.10",
|
||||
"@types/lodash": "^4.14.161",
|
||||
"@typescript-eslint/eslint-plugin": "^3.10.1",
|
||||
"@typescript-eslint/parser": "^3.10.1",
|
||||
"@vue/babel-plugin-jsx": "^1.0.0",
|
||||
"@vue/component-compiler-utils": "^3.2.0",
|
||||
"@vue/cli-plugin-babel": "~4.5.0",
|
||||
"@vue/cli-plugin-eslint": "~4.5.0",
|
||||
"@vue/cli-service": "~4.5.0",
|
||||
|
||||
8
src/.prettierrc.js
Normal file
8
src/.prettierrc.js
Normal file
@@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
semi: false,
|
||||
trailingComma: 'all',
|
||||
singleQuote: true,
|
||||
printWidth: 80,
|
||||
tabWidth: 2,
|
||||
endOfLine: 'auto',
|
||||
}
|
||||
187
src/assets/css/font/iconfont.css
Normal file
187
src/assets/css/font/iconfont.css
Normal file
@@ -0,0 +1,187 @@
|
||||
@font-face {
|
||||
font-family: "cn-icon"; /* Project id 2614877 */
|
||||
src: url('iconfont.woff2?t=1624000421294') format('woff2'),
|
||||
url('iconfont.woff?t=1624000421294') format('woff'),
|
||||
url('iconfont.ttf?t=1624000421294') format('truetype');
|
||||
}
|
||||
|
||||
.cn-icon {
|
||||
font-family: "cn-icon" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.cn-icon-view1:before {
|
||||
content: "\e702";
|
||||
}
|
||||
|
||||
.cn-icon-more3:before {
|
||||
content: "\e739";
|
||||
}
|
||||
|
||||
.cn-icon-edit:before {
|
||||
content: "\e68c";
|
||||
}
|
||||
|
||||
.cn-icon-delete:before {
|
||||
content: "\e68f";
|
||||
}
|
||||
|
||||
.cn-icon-more1:before {
|
||||
content: "\e677";
|
||||
}
|
||||
|
||||
.cn-icon-gear:before {
|
||||
content: "\e694";
|
||||
}
|
||||
|
||||
.cn-icon-add:before {
|
||||
content: "\e738";
|
||||
}
|
||||
|
||||
.cn-icon-xiangshang:before {
|
||||
content: "\e732";
|
||||
}
|
||||
|
||||
.cn-icon-xiangxia:before {
|
||||
content: "\e737";
|
||||
}
|
||||
|
||||
.cn-icon-arrow-left:before {
|
||||
content: "\e735";
|
||||
}
|
||||
|
||||
.cn-icon-arrow-right:before {
|
||||
content: "\e736";
|
||||
}
|
||||
|
||||
.cn-icon-id:before {
|
||||
content: "\e734";
|
||||
}
|
||||
|
||||
.cn-icon-position:before {
|
||||
content: "\e72e";
|
||||
}
|
||||
|
||||
.cn-icon-dns:before {
|
||||
content: "\e72f";
|
||||
}
|
||||
|
||||
.cn-icon-sub-category:before {
|
||||
content: "\e730";
|
||||
}
|
||||
|
||||
.cn-icon-risk:before {
|
||||
content: "\e731";
|
||||
}
|
||||
|
||||
.cn-icon-category:before {
|
||||
content: "\e733";
|
||||
}
|
||||
|
||||
.cn-icon-alert:before {
|
||||
content: "\e72d";
|
||||
}
|
||||
|
||||
.cn-icon-dropdown:before {
|
||||
content: "\e724";
|
||||
}
|
||||
|
||||
.cn-icon-download:before {
|
||||
content: "\e725";
|
||||
}
|
||||
|
||||
.cn-icon-check:before {
|
||||
content: "\e726";
|
||||
}
|
||||
|
||||
.cn-icon-refresh:before {
|
||||
content: "\e727";
|
||||
}
|
||||
|
||||
.cn-icon-language:before {
|
||||
content: "\e728";
|
||||
}
|
||||
|
||||
.cn-icon-more:before {
|
||||
content: "\e729";
|
||||
}
|
||||
|
||||
.cn-icon-style:before {
|
||||
content: "\e72a";
|
||||
}
|
||||
|
||||
.cn-icon-expand:before {
|
||||
content: "\e72b";
|
||||
}
|
||||
|
||||
.cn-icon-full-screen:before {
|
||||
content: "\e72c";
|
||||
}
|
||||
|
||||
.cn-icon-upload:before {
|
||||
content: "\e71f";
|
||||
}
|
||||
|
||||
.cn-icon-package-loss:before {
|
||||
content: "\e720";
|
||||
}
|
||||
|
||||
.cn-icon-http:before {
|
||||
content: "\e721";
|
||||
}
|
||||
|
||||
.cn-icon-time:before {
|
||||
content: "\e722";
|
||||
}
|
||||
|
||||
.cn-icon-ssl:before {
|
||||
content: "\e723";
|
||||
}
|
||||
|
||||
.cn-icon-root-domain:before {
|
||||
content: "\e71d";
|
||||
}
|
||||
|
||||
.cn-icon-doh-domain:before {
|
||||
content: "\e71a";
|
||||
}
|
||||
|
||||
.cn-icon-recursive-domain:before {
|
||||
content: "\e71b";
|
||||
}
|
||||
|
||||
.cn-icon-authoritative-domain:before {
|
||||
content: "\e71c";
|
||||
}
|
||||
|
||||
.cn-icon-top-level-domain:before {
|
||||
content: "\e71e";
|
||||
}
|
||||
|
||||
.cn-icon-dashboard:before {
|
||||
content: "\e714";
|
||||
}
|
||||
|
||||
.cn-icon-entitles:before {
|
||||
content: "\e715";
|
||||
}
|
||||
|
||||
.cn-icon-incidents:before {
|
||||
content: "\e716";
|
||||
}
|
||||
|
||||
.cn-icon-artifacts-brower:before {
|
||||
content: "\e717";
|
||||
}
|
||||
|
||||
.cn-icon-setting:before {
|
||||
content: "\e718";
|
||||
}
|
||||
|
||||
.cn-icon-reports:before {
|
||||
content: "\e719";
|
||||
}
|
||||
|
||||
1
src/assets/css/font/iconfont.js
Normal file
1
src/assets/css/font/iconfont.js
Normal file
File diff suppressed because one or more lines are too long
310
src/assets/css/font/iconfont.json
Normal file
310
src/assets/css/font/iconfont.json
Normal file
@@ -0,0 +1,310 @@
|
||||
{
|
||||
"id": "2614877",
|
||||
"name": "Cyber Narrator",
|
||||
"font_family": "cn-icon",
|
||||
"css_prefix_text": "cn-icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "20712322",
|
||||
"name": "view",
|
||||
"font_class": "view1",
|
||||
"unicode": "e702",
|
||||
"unicode_decimal": 59138
|
||||
},
|
||||
{
|
||||
"icon_id": "21907756",
|
||||
"name": "更多操作1",
|
||||
"font_class": "more3",
|
||||
"unicode": "e739",
|
||||
"unicode_decimal": 59193
|
||||
},
|
||||
{
|
||||
"icon_id": "16827143",
|
||||
"name": "编辑",
|
||||
"font_class": "edit",
|
||||
"unicode": "e68c",
|
||||
"unicode_decimal": 59020
|
||||
},
|
||||
{
|
||||
"icon_id": "16827146",
|
||||
"name": "删除",
|
||||
"font_class": "delete",
|
||||
"unicode": "e68f",
|
||||
"unicode_decimal": 59023
|
||||
},
|
||||
{
|
||||
"icon_id": "21119423",
|
||||
"name": "更 多",
|
||||
"font_class": "more1",
|
||||
"unicode": "e677",
|
||||
"unicode_decimal": 58999
|
||||
},
|
||||
{
|
||||
"icon_id": "16827151",
|
||||
"name": "设置",
|
||||
"font_class": "gear",
|
||||
"unicode": "e694",
|
||||
"unicode_decimal": 59028
|
||||
},
|
||||
{
|
||||
"icon_id": "21209541",
|
||||
"name": "Add",
|
||||
"font_class": "add",
|
||||
"unicode": "e738",
|
||||
"unicode_decimal": 59192
|
||||
},
|
||||
{
|
||||
"icon_id": "22325159",
|
||||
"name": "向上",
|
||||
"font_class": "xiangshang",
|
||||
"unicode": "e732",
|
||||
"unicode_decimal": 59186
|
||||
},
|
||||
{
|
||||
"icon_id": "22325160",
|
||||
"name": "向下",
|
||||
"font_class": "xiangxia",
|
||||
"unicode": "e737",
|
||||
"unicode_decimal": 59191
|
||||
},
|
||||
{
|
||||
"icon_id": "22324980",
|
||||
"name": "左箭头",
|
||||
"font_class": "arrow-left",
|
||||
"unicode": "e735",
|
||||
"unicode_decimal": 59189
|
||||
},
|
||||
{
|
||||
"icon_id": "22324981",
|
||||
"name": "右箭头",
|
||||
"font_class": "arrow-right",
|
||||
"unicode": "e736",
|
||||
"unicode_decimal": 59190
|
||||
},
|
||||
{
|
||||
"icon_id": "22320764",
|
||||
"name": "id",
|
||||
"font_class": "id",
|
||||
"unicode": "e734",
|
||||
"unicode_decimal": 59188
|
||||
},
|
||||
{
|
||||
"icon_id": "22318866",
|
||||
"name": "地理位置",
|
||||
"font_class": "position",
|
||||
"unicode": "e72e",
|
||||
"unicode_decimal": 59182
|
||||
},
|
||||
{
|
||||
"icon_id": "22318867",
|
||||
"name": "DNS",
|
||||
"font_class": "dns",
|
||||
"unicode": "e72f",
|
||||
"unicode_decimal": 59183
|
||||
},
|
||||
{
|
||||
"icon_id": "22318868",
|
||||
"name": "子分类",
|
||||
"font_class": "sub-category",
|
||||
"unicode": "e730",
|
||||
"unicode_decimal": 59184
|
||||
},
|
||||
{
|
||||
"icon_id": "22318869",
|
||||
"name": "风险",
|
||||
"font_class": "risk",
|
||||
"unicode": "e731",
|
||||
"unicode_decimal": 59185
|
||||
},
|
||||
{
|
||||
"icon_id": "22318871",
|
||||
"name": "类别",
|
||||
"font_class": "category",
|
||||
"unicode": "e733",
|
||||
"unicode_decimal": 59187
|
||||
},
|
||||
{
|
||||
"icon_id": "22292878",
|
||||
"name": "告警",
|
||||
"font_class": "alert",
|
||||
"unicode": "e72d",
|
||||
"unicode_decimal": 59181
|
||||
},
|
||||
{
|
||||
"icon_id": "22292845",
|
||||
"name": "下拉",
|
||||
"font_class": "dropdown",
|
||||
"unicode": "e724",
|
||||
"unicode_decimal": 59172
|
||||
},
|
||||
{
|
||||
"icon_id": "22292846",
|
||||
"name": "下载",
|
||||
"font_class": "download",
|
||||
"unicode": "e725",
|
||||
"unicode_decimal": 59173
|
||||
},
|
||||
{
|
||||
"icon_id": "22292847",
|
||||
"name": "选中",
|
||||
"font_class": "check",
|
||||
"unicode": "e726",
|
||||
"unicode_decimal": 59174
|
||||
},
|
||||
{
|
||||
"icon_id": "22292848",
|
||||
"name": "刷新",
|
||||
"font_class": "refresh",
|
||||
"unicode": "e727",
|
||||
"unicode_decimal": 59175
|
||||
},
|
||||
{
|
||||
"icon_id": "22292849",
|
||||
"name": "中英文",
|
||||
"font_class": "language",
|
||||
"unicode": "e728",
|
||||
"unicode_decimal": 59176
|
||||
},
|
||||
{
|
||||
"icon_id": "22292850",
|
||||
"name": "更多",
|
||||
"font_class": "more",
|
||||
"unicode": "e729",
|
||||
"unicode_decimal": 59177
|
||||
},
|
||||
{
|
||||
"icon_id": "22292851",
|
||||
"name": "样式",
|
||||
"font_class": "style",
|
||||
"unicode": "e72a",
|
||||
"unicode_decimal": 59178
|
||||
},
|
||||
{
|
||||
"icon_id": "22292852",
|
||||
"name": "展开",
|
||||
"font_class": "expand",
|
||||
"unicode": "e72b",
|
||||
"unicode_decimal": 59179
|
||||
},
|
||||
{
|
||||
"icon_id": "22292853",
|
||||
"name": "最大化",
|
||||
"font_class": "full-screen",
|
||||
"unicode": "e72c",
|
||||
"unicode_decimal": 59180
|
||||
},
|
||||
{
|
||||
"icon_id": "22292732",
|
||||
"name": "重传",
|
||||
"font_class": "upload",
|
||||
"unicode": "e71f",
|
||||
"unicode_decimal": 59167
|
||||
},
|
||||
{
|
||||
"icon_id": "22292733",
|
||||
"name": "丢包率",
|
||||
"font_class": "package-loss",
|
||||
"unicode": "e720",
|
||||
"unicode_decimal": 59168
|
||||
},
|
||||
{
|
||||
"icon_id": "22292734",
|
||||
"name": "HTTP",
|
||||
"font_class": "http",
|
||||
"unicode": "e721",
|
||||
"unicode_decimal": 59169
|
||||
},
|
||||
{
|
||||
"icon_id": "22292735",
|
||||
"name": "时间",
|
||||
"font_class": "time",
|
||||
"unicode": "e722",
|
||||
"unicode_decimal": 59170
|
||||
},
|
||||
{
|
||||
"icon_id": "22292736",
|
||||
"name": "SSL",
|
||||
"font_class": "ssl",
|
||||
"unicode": "e723",
|
||||
"unicode_decimal": 59171
|
||||
},
|
||||
{
|
||||
"icon_id": "22292709",
|
||||
"name": "根域名",
|
||||
"font_class": "root-domain",
|
||||
"unicode": "e71d",
|
||||
"unicode_decimal": 59165
|
||||
},
|
||||
{
|
||||
"icon_id": "22292704",
|
||||
"name": "DOH域名",
|
||||
"font_class": "doh-domain",
|
||||
"unicode": "e71a",
|
||||
"unicode_decimal": 59162
|
||||
},
|
||||
{
|
||||
"icon_id": "22290483",
|
||||
"name": "递归域名",
|
||||
"font_class": "recursive-domain",
|
||||
"unicode": "e71b",
|
||||
"unicode_decimal": 59163
|
||||
},
|
||||
{
|
||||
"icon_id": "22290484",
|
||||
"name": "权威域名",
|
||||
"font_class": "authoritative-domain",
|
||||
"unicode": "e71c",
|
||||
"unicode_decimal": 59164
|
||||
},
|
||||
{
|
||||
"icon_id": "22290486",
|
||||
"name": "顶级域名",
|
||||
"font_class": "top-level-domain",
|
||||
"unicode": "e71e",
|
||||
"unicode_decimal": 59166
|
||||
},
|
||||
{
|
||||
"icon_id": "22290435",
|
||||
"name": "Dashboard",
|
||||
"font_class": "dashboard",
|
||||
"unicode": "e714",
|
||||
"unicode_decimal": 59156
|
||||
},
|
||||
{
|
||||
"icon_id": "22290436",
|
||||
"name": "Entitles",
|
||||
"font_class": "entitles",
|
||||
"unicode": "e715",
|
||||
"unicode_decimal": 59157
|
||||
},
|
||||
{
|
||||
"icon_id": "22290437",
|
||||
"name": "Incidents",
|
||||
"font_class": "incidents",
|
||||
"unicode": "e716",
|
||||
"unicode_decimal": 59158
|
||||
},
|
||||
{
|
||||
"icon_id": "22290438",
|
||||
"name": "Artifacts Brower",
|
||||
"font_class": "artifacts-brower",
|
||||
"unicode": "e717",
|
||||
"unicode_decimal": 59159
|
||||
},
|
||||
{
|
||||
"icon_id": "22290439",
|
||||
"name": "Setting",
|
||||
"font_class": "setting",
|
||||
"unicode": "e718",
|
||||
"unicode_decimal": 59160
|
||||
},
|
||||
{
|
||||
"icon_id": "22290440",
|
||||
"name": "Reports",
|
||||
"font_class": "reports",
|
||||
"unicode": "e719",
|
||||
"unicode_decimal": 59161
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
src/assets/css/font/iconfont.ttf
Normal file
BIN
src/assets/css/font/iconfont.ttf
Normal file
Binary file not shown.
BIN
src/assets/css/font/iconfont.woff
Normal file
BIN
src/assets/css/font/iconfont.woff
Normal file
Binary file not shown.
BIN
src/assets/css/font/iconfont.woff2
Normal file
BIN
src/assets/css/font/iconfont.woff2
Normal file
Binary file not shown.
@@ -3,4 +3,5 @@
|
||||
@import './common';
|
||||
@import './rightBoxCommon';
|
||||
@import './tableCommon';
|
||||
@import '../stylus/index.scss';
|
||||
@import '../stylus/index.scss';
|
||||
@import './font/iconfont.css';
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.nz-icon-minus-position {
|
||||
.cn-icon-minus-position {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
|
||||
@@ -387,3 +387,9 @@
|
||||
height: 100%;
|
||||
cursor: col-resize;
|
||||
}
|
||||
.margin-r-10{
|
||||
margin-right: 10px;
|
||||
}
|
||||
.margin-r-20{
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
48
src/commitlint.config.js
Normal file
48
src/commitlint.config.js
Normal file
@@ -0,0 +1,48 @@
|
||||
// eslint-disable-next-line
|
||||
const importFrom = require('import-from')
|
||||
|
||||
function getPackages (context) {
|
||||
return Promise.resolve()
|
||||
.then(() => {
|
||||
const ctx = context || {}
|
||||
const cwd = ctx.cwd || process.cwd()
|
||||
const Project = importFrom(cwd, '@lerna/project')
|
||||
const project = new Project(cwd)
|
||||
return project.getPackages()
|
||||
})
|
||||
.then(packages => {
|
||||
return packages.map(pkg => pkg.name).map(name => (name.charAt(0) === '@' ? name.split('/')[1] : name))
|
||||
})
|
||||
}
|
||||
|
||||
const scopes = [
|
||||
'project',
|
||||
'core',
|
||||
'style',
|
||||
'docs',
|
||||
'ci',
|
||||
'dev',
|
||||
'build',
|
||||
'deploy',
|
||||
'other',
|
||||
]
|
||||
|
||||
module.exports = {
|
||||
rules: {
|
||||
'scope-enum': ctx => getPackages(ctx).then(packages => [2, 'always', [...packages, ...scopes]]),
|
||||
'body-leading-blank': [1, 'always'],
|
||||
'footer-leading-blank': [1, 'always'],
|
||||
'header-max-length': [2, 'always', 72],
|
||||
'scope-case': [2, 'always', 'lower-case'],
|
||||
'subject-case': [1, 'never', ['sentence-case', 'start-case', 'pascal-case', 'upper-case']],
|
||||
'subject-empty': [2, 'never'],
|
||||
'subject-full-stop': [2, 'never', '.'],
|
||||
'type-case': [2, 'always', 'lower-case'],
|
||||
'type-empty': [2, 'never'],
|
||||
'type-enum': [
|
||||
2,
|
||||
'always',
|
||||
['build', 'chore', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'style', 'test', 'improvement'],
|
||||
],
|
||||
},
|
||||
}
|
||||
4
src/components/common/MyDatePicker/index.d.ts
vendored
Normal file
4
src/components/common/MyDatePicker/index.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import DatePicker from './src/date-picker';
|
||||
import type { SFCWithInstall } from 'element-plus/lib/utils/types';
|
||||
declare const _DatePicker: SFCWithInstall<typeof DatePicker>;
|
||||
export default _DatePicker;
|
||||
2170
src/components/common/MyDatePicker/index.js
Normal file
2170
src/components/common/MyDatePicker/index.js
Normal file
File diff suppressed because it is too large
Load Diff
61
src/components/common/MyDatePicker/src/date-picker-com/basic-date-table.vue.d.ts
vendored
Normal file
61
src/components/common/MyDatePicker/src/date-picker-com/basic-date-table.vue.d.ts
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
import { PropType } from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
date: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
minDate: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
maxDate: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
parsedValue: {
|
||||
type: PropType<dayjs.Dayjs | dayjs.Dayjs[]>;
|
||||
};
|
||||
selectionMode: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
showWeekNumber: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabledDate: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
cellClassName: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
rangeState: {
|
||||
type: ObjectConstructor;
|
||||
default: () => {
|
||||
endDate: any;
|
||||
selecting: boolean;
|
||||
};
|
||||
};
|
||||
}, {
|
||||
handleMouseMove: (event: any) => void;
|
||||
t: (...args: any[]) => string;
|
||||
rows: import("vue").ComputedRef<any[][]>;
|
||||
isWeekActive: (cell: any) => any;
|
||||
getCellClasses: (cell: any) => string;
|
||||
WEEKS: import("vue").ComputedRef<any>;
|
||||
handleClick: (event: any) => void;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("changerange" | "pick" | "select")[], "changerange" | "pick" | "select", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
selectionMode: unknown;
|
||||
showWeekNumber: boolean;
|
||||
rangeState: Record<string, any>;
|
||||
} & {
|
||||
date?: unknown;
|
||||
minDate?: unknown;
|
||||
maxDate?: unknown;
|
||||
parsedValue?: unknown;
|
||||
disabledDate?: unknown;
|
||||
cellClassName?: unknown;
|
||||
}>, {
|
||||
selectionMode: unknown;
|
||||
showWeekNumber: boolean;
|
||||
rangeState: Record<string, any>;
|
||||
}>;
|
||||
export default _default;
|
||||
50
src/components/common/MyDatePicker/src/date-picker-com/basic-month-table.vue.d.ts
vendored
Normal file
50
src/components/common/MyDatePicker/src/date-picker-com/basic-month-table.vue.d.ts
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
import dayjs from 'dayjs';
|
||||
import { PropType } from 'vue';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
disabledDate: {
|
||||
type: PropType<(_: Date) => void>;
|
||||
};
|
||||
selectionMode: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
minDate: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
maxDate: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
date: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
parsedValue: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
rangeState: {
|
||||
type: ObjectConstructor;
|
||||
default: () => {
|
||||
endDate: any;
|
||||
selecting: boolean;
|
||||
};
|
||||
};
|
||||
}, {
|
||||
handleMouseMove: (event: any) => void;
|
||||
handleMonthTableClick: (event: any) => void;
|
||||
rows: import("vue").ComputedRef<any[][]>;
|
||||
getCellStyle: (cell: any) => any;
|
||||
t: (...args: any[]) => string;
|
||||
months: any;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("changerange" | "pick" | "select")[], "changerange" | "pick" | "select", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
selectionMode: unknown;
|
||||
rangeState: Record<string, any>;
|
||||
} & {
|
||||
disabledDate?: unknown;
|
||||
minDate?: unknown;
|
||||
maxDate?: unknown;
|
||||
date?: unknown;
|
||||
parsedValue?: unknown;
|
||||
}>, {
|
||||
selectionMode: unknown;
|
||||
rangeState: Record<string, any>;
|
||||
}>;
|
||||
export default _default;
|
||||
22
src/components/common/MyDatePicker/src/date-picker-com/basic-year-table.vue.d.ts
vendored
Normal file
22
src/components/common/MyDatePicker/src/date-picker-com/basic-year-table.vue.d.ts
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
import { PropType } from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
disabledDate: {
|
||||
type: PropType<(_: Date) => void>;
|
||||
};
|
||||
parsedValue: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
date: {
|
||||
type: PropType<dayjs.Dayjs>;
|
||||
};
|
||||
}, {
|
||||
startYear: import("vue").ComputedRef<number>;
|
||||
getCellStyle: (year: any) => any;
|
||||
handleYearTableClick: (event: any) => void;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "pick"[], "pick", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{} & {
|
||||
disabledDate?: unknown;
|
||||
parsedValue?: unknown;
|
||||
date?: unknown;
|
||||
}>, {}>;
|
||||
export default _default;
|
||||
136
src/components/common/MyDatePicker/src/date-picker-com/panel-date-pick.vue.d.ts
vendored
Normal file
136
src/components/common/MyDatePicker/src/date-picker-com/panel-date-pick.vue.d.ts
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
import { PropType } from 'vue';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
visible: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
parsedValue: {
|
||||
type: PropType<dayjs.Dayjs | dayjs.Dayjs[]>;
|
||||
};
|
||||
format: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
type: {
|
||||
type: StringConstructor;
|
||||
required: true;
|
||||
};
|
||||
}, {
|
||||
handleTimePick: (value: any, visible: any, first: any) => void;
|
||||
handleTimePickClose: () => void;
|
||||
onTimePickerInputFocus: () => void;
|
||||
timePickerVisible: import("vue").Ref<boolean>;
|
||||
visibleTime: import("vue").ComputedRef<any>;
|
||||
visibleDate: import("vue").ComputedRef<any>;
|
||||
showTime: import("vue").ComputedRef<boolean>;
|
||||
changeToNow: () => void;
|
||||
onConfirm: () => void;
|
||||
footerVisible: import("vue").ComputedRef<boolean>;
|
||||
handleYearPick: (year: any) => void;
|
||||
showMonthPicker: () => void;
|
||||
showYearPicker: () => void;
|
||||
handleMonthPick: (month: any) => void;
|
||||
hasShortcuts: import("vue").ComputedRef<boolean>;
|
||||
shortcuts: any;
|
||||
arrowControl: any;
|
||||
disabledDate: any;
|
||||
cellClassName: any;
|
||||
selectionMode: import("vue").ComputedRef<unknown>;
|
||||
handleShortcutClick: (shortcut: any) => void;
|
||||
prevYear_: () => void;
|
||||
nextYear_: () => void;
|
||||
prevMonth_: () => void;
|
||||
nextMonth_: () => void;
|
||||
innerDate: import("vue").Ref<{
|
||||
clone: () => dayjs.Dayjs;
|
||||
isValid: () => boolean;
|
||||
year: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
month: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
date: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
day: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
hour: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
minute: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
second: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
millisecond: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
||||
get: (unit: dayjs.UnitType) => number;
|
||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
format: (template?: string) => string;
|
||||
diff: (date: dayjs.ConfigType, unit?: "M" | "week" | "month" | "year" | "day" | "date" | "hour" | "minute" | "second" | "millisecond" | "d" | "y" | "h" | "m" | "s" | "ms" | "w" | "quarter" | "Q", float?: boolean) => number;
|
||||
valueOf: () => number;
|
||||
unix: () => number;
|
||||
daysInMonth: () => number;
|
||||
toDate: () => Date;
|
||||
toJSON: () => string;
|
||||
toISOString: () => string;
|
||||
toString: () => string;
|
||||
utcOffset: () => number;
|
||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
locale: {
|
||||
(): string;
|
||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
||||
};
|
||||
localeData: () => any;
|
||||
week: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
weekYear: () => number;
|
||||
dayOfYear: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
}>;
|
||||
t: (...args: any[]) => string;
|
||||
yearLabel: import("vue").ComputedRef<string>;
|
||||
currentView: import("vue").Ref<string>;
|
||||
month: import("vue").ComputedRef<number>;
|
||||
handleDatePick: (value: Dayjs) => void;
|
||||
handleVisibleTimeChange: (value: any) => void;
|
||||
handleVisibleDateChange: (value: any) => void;
|
||||
timeFormat: import("vue").ComputedRef<any>;
|
||||
userInputTime: any;
|
||||
userInputDate: any;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "set-picker-option")[], "pick" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
visible: boolean;
|
||||
format: unknown;
|
||||
type: unknown;
|
||||
} & {
|
||||
parsedValue?: unknown;
|
||||
}>, {
|
||||
visible: boolean;
|
||||
format: unknown;
|
||||
}>;
|
||||
export default _default;
|
||||
210
src/components/common/MyDatePicker/src/date-picker-com/panel-date-range.vue.d.ts
vendored
Normal file
210
src/components/common/MyDatePicker/src/date-picker-com/panel-date-range.vue.d.ts
vendored
Normal file
@@ -0,0 +1,210 @@
|
||||
import { PropType } from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
unlinkPanels: BooleanConstructor;
|
||||
parsedValue: {
|
||||
type: PropType<dayjs.Dayjs[]>;
|
||||
};
|
||||
type: {
|
||||
type: StringConstructor;
|
||||
required: true;
|
||||
};
|
||||
}, {
|
||||
shortcuts: any;
|
||||
disabledDate: any;
|
||||
cellClassName: any;
|
||||
minTimePickerVisible: import("vue").Ref<boolean>;
|
||||
maxTimePickerVisible: import("vue").Ref<boolean>;
|
||||
handleMinTimeClose: () => void;
|
||||
handleMaxTimeClose: () => void;
|
||||
handleShortcutClick: (shortcut: any) => void;
|
||||
rangeState: import("vue").Ref<{
|
||||
endDate: any;
|
||||
selecting: boolean;
|
||||
}>;
|
||||
minDate: any;
|
||||
maxDate: any;
|
||||
handleRangePick: (val: any, close?: boolean) => void;
|
||||
onSelect: (selecting: any) => void;
|
||||
handleChangeRange: (val: any) => void;
|
||||
btnDisabled: import("vue").ComputedRef<boolean>;
|
||||
enableYearArrow: import("vue").ComputedRef<boolean>;
|
||||
enableMonthArrow: import("vue").ComputedRef<boolean>;
|
||||
rightPrevMonth: () => void;
|
||||
rightPrevYear: () => void;
|
||||
rightNextMonth: () => void;
|
||||
rightNextYear: () => void;
|
||||
leftPrevMonth: () => void;
|
||||
leftPrevYear: () => void;
|
||||
leftNextMonth: () => void;
|
||||
leftNextYear: () => void;
|
||||
hasShortcuts: import("vue").ComputedRef<boolean>;
|
||||
leftLabel: import("vue").ComputedRef<string>;
|
||||
rightLabel: import("vue").ComputedRef<string>;
|
||||
leftDate: import("vue").Ref<{
|
||||
clone: () => dayjs.Dayjs;
|
||||
isValid: () => boolean;
|
||||
year: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
month: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
date: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
day: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
hour: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
minute: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
second: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
millisecond: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
||||
get: (unit: dayjs.UnitType) => number;
|
||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
format: (template?: string) => string;
|
||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
||||
valueOf: () => number;
|
||||
unix: () => number;
|
||||
daysInMonth: () => number;
|
||||
toDate: () => Date;
|
||||
toJSON: () => string;
|
||||
toISOString: () => string;
|
||||
toString: () => string;
|
||||
utcOffset: () => number;
|
||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
locale: {
|
||||
(): string;
|
||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
||||
};
|
||||
localeData: () => any;
|
||||
week: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
weekYear: () => number;
|
||||
dayOfYear: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
}>;
|
||||
rightDate: import("vue").Ref<{
|
||||
clone: () => dayjs.Dayjs;
|
||||
isValid: () => boolean;
|
||||
year: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
month: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
date: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
day: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
hour: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
minute: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
second: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
millisecond: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
||||
get: (unit: dayjs.UnitType) => number;
|
||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
format: (template?: string) => string;
|
||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
||||
valueOf: () => number;
|
||||
unix: () => number;
|
||||
daysInMonth: () => number;
|
||||
toDate: () => Date;
|
||||
toJSON: () => string;
|
||||
toISOString: () => string;
|
||||
toString: () => string;
|
||||
utcOffset: () => number;
|
||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
locale: {
|
||||
(): string;
|
||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
||||
};
|
||||
localeData: () => any;
|
||||
week: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
weekYear: () => number;
|
||||
dayOfYear: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
}>;
|
||||
showTime: import("vue").ComputedRef<boolean>;
|
||||
t: (...args: any[]) => string;
|
||||
minVisibleDate: import("vue").ComputedRef<any>;
|
||||
maxVisibleDate: import("vue").ComputedRef<any>;
|
||||
minVisibleTime: import("vue").ComputedRef<any>;
|
||||
maxVisibleTime: import("vue").ComputedRef<any>;
|
||||
arrowControl: any;
|
||||
handleDateInput: (value: any, type: any) => void;
|
||||
handleDateChange: (value: any, type: any) => void;
|
||||
handleTimeInput: (value: any, type: any) => void;
|
||||
handleTimeChange: (value: any, type: any) => void;
|
||||
handleMinTimePick: (value: any, visible: any, first: any) => void;
|
||||
handleMaxTimePick: (value: any, visible: any, first: any) => void;
|
||||
handleClear: () => void;
|
||||
handleConfirm: (visible?: boolean) => void;
|
||||
timeFormat: import("vue").ComputedRef<any>;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "set-picker-option")[], "pick" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
unlinkPanels: boolean;
|
||||
type: unknown;
|
||||
} & {
|
||||
parsedValue?: unknown;
|
||||
}>, {
|
||||
unlinkPanels: boolean;
|
||||
}>;
|
||||
export default _default;
|
||||
179
src/components/common/MyDatePicker/src/date-picker-com/panel-month-range.vue.d.ts
vendored
Normal file
179
src/components/common/MyDatePicker/src/date-picker-com/panel-month-range.vue.d.ts
vendored
Normal file
@@ -0,0 +1,179 @@
|
||||
import dayjs from 'dayjs';
|
||||
import { PropType } from 'vue';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
unlinkPanels: BooleanConstructor;
|
||||
parsedValue: {
|
||||
type: PropType<dayjs.Dayjs[]>;
|
||||
};
|
||||
}, {
|
||||
shortcuts: any;
|
||||
disabledDate: any;
|
||||
onSelect: (selecting: any) => void;
|
||||
handleRangePick: (val: any, close?: boolean) => void;
|
||||
rangeState: import("vue").Ref<{
|
||||
endDate: any;
|
||||
selecting: boolean;
|
||||
}>;
|
||||
handleChangeRange: (val: any) => void;
|
||||
minDate: any;
|
||||
maxDate: any;
|
||||
enableYearArrow: import("vue").ComputedRef<boolean>;
|
||||
leftLabel: import("vue").ComputedRef<string>;
|
||||
rightLabel: import("vue").ComputedRef<string>;
|
||||
leftNextYear: () => void;
|
||||
leftPrevYear: () => void;
|
||||
rightNextYear: () => void;
|
||||
rightPrevYear: () => void;
|
||||
t: (...args: any[]) => string;
|
||||
leftDate: import("vue").Ref<{
|
||||
clone: () => dayjs.Dayjs;
|
||||
isValid: () => boolean;
|
||||
year: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
month: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
date: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
day: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
hour: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
minute: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
second: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
millisecond: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
||||
get: (unit: dayjs.UnitType) => number;
|
||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
format: (template?: string) => string;
|
||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
||||
valueOf: () => number;
|
||||
unix: () => number;
|
||||
daysInMonth: () => number;
|
||||
toDate: () => Date;
|
||||
toJSON: () => string;
|
||||
toISOString: () => string;
|
||||
toString: () => string;
|
||||
utcOffset: () => number;
|
||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
locale: {
|
||||
(): string;
|
||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
||||
};
|
||||
localeData: () => any;
|
||||
week: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
weekYear: () => number;
|
||||
dayOfYear: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
}>;
|
||||
rightDate: import("vue").Ref<{
|
||||
clone: () => dayjs.Dayjs;
|
||||
isValid: () => boolean;
|
||||
year: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
month: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
date: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
day: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
hour: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
minute: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
second: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
millisecond: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
||||
get: (unit: dayjs.UnitType) => number;
|
||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
||||
format: (template?: string) => string;
|
||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
||||
valueOf: () => number;
|
||||
unix: () => number;
|
||||
daysInMonth: () => number;
|
||||
toDate: () => Date;
|
||||
toJSON: () => string;
|
||||
toISOString: () => string;
|
||||
toString: () => string;
|
||||
utcOffset: () => number;
|
||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
locale: {
|
||||
(): string;
|
||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
||||
};
|
||||
localeData: () => any;
|
||||
week: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
weekYear: () => number;
|
||||
dayOfYear: {
|
||||
(): number;
|
||||
(value: number): dayjs.Dayjs;
|
||||
};
|
||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
||||
}>;
|
||||
hasShortcuts: import("vue").ComputedRef<boolean>;
|
||||
handleShortcutClick: (shortcut: any) => void;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "set-picker-option")[], "pick" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
unlinkPanels: boolean;
|
||||
} & {
|
||||
parsedValue?: unknown;
|
||||
}>, {
|
||||
unlinkPanels: boolean;
|
||||
}>;
|
||||
export default _default;
|
||||
154
src/components/common/MyDatePicker/src/date-picker.d.ts
vendored
Normal file
154
src/components/common/MyDatePicker/src/date-picker.d.ts
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
type: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
name: {
|
||||
type: (ArrayConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
popperClass: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
format: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
clearable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
clearIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
editable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
prefixIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
size: {
|
||||
type: import("vue").PropType<ComponentSize>;
|
||||
validator: (val: string) => boolean;
|
||||
};
|
||||
readonly: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabled: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
placeholder: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
popperOptions: {
|
||||
type: import("vue").PropType<import("@popperjs/core").Options>;
|
||||
default: () => {};
|
||||
};
|
||||
modelValue: {
|
||||
type: import("vue").PropType<string | Date | Date[]>;
|
||||
default: string;
|
||||
};
|
||||
rangeSeparator: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
startPlaceholder: StringConstructor;
|
||||
endPlaceholder: StringConstructor;
|
||||
defaultValue: {
|
||||
type: import("vue").PropType<Date | Date[]>;
|
||||
};
|
||||
defaultTime: {
|
||||
type: import("vue").PropType<Date | Date[]>;
|
||||
};
|
||||
isRange: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabledHours: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledMinutes: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledSeconds: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledDate: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
cellClassName: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
shortcuts: {
|
||||
type: ArrayConstructor;
|
||||
default: () => any[];
|
||||
};
|
||||
arrowControl: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
validateEvent: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
unlinkPanels: BooleanConstructor;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
type: unknown;
|
||||
name: unknown;
|
||||
popperClass: unknown;
|
||||
clearable: boolean;
|
||||
clearIcon: unknown;
|
||||
editable: boolean;
|
||||
prefixIcon: unknown;
|
||||
readonly: boolean;
|
||||
disabled: boolean;
|
||||
placeholder: unknown;
|
||||
popperOptions: unknown;
|
||||
modelValue: unknown;
|
||||
rangeSeparator: unknown;
|
||||
isRange: boolean;
|
||||
shortcuts: unknown;
|
||||
arrowControl: boolean;
|
||||
validateEvent: boolean;
|
||||
unlinkPanels: boolean;
|
||||
} & {
|
||||
format?: unknown;
|
||||
size?: unknown;
|
||||
startPlaceholder?: unknown;
|
||||
endPlaceholder?: unknown;
|
||||
defaultValue?: unknown;
|
||||
defaultTime?: unknown;
|
||||
disabledHours?: unknown;
|
||||
disabledMinutes?: unknown;
|
||||
disabledSeconds?: unknown;
|
||||
disabledDate?: unknown;
|
||||
cellClassName?: unknown;
|
||||
}>, {
|
||||
type: unknown;
|
||||
name: unknown;
|
||||
popperClass: unknown;
|
||||
clearable: boolean;
|
||||
clearIcon: unknown;
|
||||
editable: boolean;
|
||||
prefixIcon: unknown;
|
||||
readonly: boolean;
|
||||
disabled: boolean;
|
||||
placeholder: unknown;
|
||||
popperOptions: unknown;
|
||||
modelValue: unknown;
|
||||
rangeSeparator: unknown;
|
||||
isRange: boolean;
|
||||
shortcuts: unknown;
|
||||
arrowControl: boolean;
|
||||
validateEvent: boolean;
|
||||
unlinkPanels: boolean;
|
||||
}>;
|
||||
export default _default;
|
||||
10
src/components/common/MytTimePicker/index.d.ts
vendored
Normal file
10
src/components/common/MytTimePicker/index.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import TimePicker from './src/time-picker';
|
||||
import CommonPicker from './src/common/picker.vue';
|
||||
import TimePickPanel from './src/time-picker-com/panel-time-pick.vue';
|
||||
import type { SFCWithInstall } from 'element-plus/lib/utils/types';
|
||||
export * from './src/common/date-utils';
|
||||
export * from './src/common/constant';
|
||||
export * from './src/common/props';
|
||||
declare const _TimePicker: SFCWithInstall<typeof TimePicker>;
|
||||
export { CommonPicker, TimePickPanel };
|
||||
export default _TimePicker;
|
||||
1569
src/components/common/MytTimePicker/index.js
Normal file
1569
src/components/common/MytTimePicker/index.js
Normal file
File diff suppressed because it is too large
Load Diff
12
src/components/common/MytTimePicker/src/common/constant.d.ts
vendored
Normal file
12
src/components/common/MytTimePicker/src/common/constant.d.ts
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
export declare const DEFAULT_FORMATS_TIME = "HH:mm:ss";
|
||||
export declare const DEFAULT_FORMATS_DATE = "YYYY-MM-DD";
|
||||
export declare const DEFAULT_FORMATS_DATEPICKER: {
|
||||
date: string;
|
||||
week: string;
|
||||
year: string;
|
||||
month: string;
|
||||
datetime: string;
|
||||
monthrange: string;
|
||||
daterange: string;
|
||||
datetimerange: string;
|
||||
};
|
||||
3
src/components/common/MytTimePicker/src/common/date-utils.d.ts
vendored
Normal file
3
src/components/common/MytTimePicker/src/common/date-utils.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export declare const rangeArr: (n: any) => number[];
|
||||
export declare const extractDateFormat: (format: any) => any;
|
||||
export declare const extractTimeFormat: (format: any) => any;
|
||||
182
src/components/common/MytTimePicker/src/common/picker.vue.d.ts
vendored
Normal file
182
src/components/common/MytTimePicker/src/common/picker.vue.d.ts
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
import type { Options } from '@popperjs/core';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
name: {
|
||||
type: (ArrayConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
popperClass: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
format: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
type: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
clearable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
clearIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
editable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
prefixIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
size: {
|
||||
type: import("vue").PropType<ComponentSize>;
|
||||
validator: (val: string) => boolean;
|
||||
};
|
||||
readonly: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabled: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
placeholder: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
popperOptions: {
|
||||
type: import("vue").PropType<Options>;
|
||||
default: () => {};
|
||||
};
|
||||
modelValue: {
|
||||
type: import("vue").PropType<string | Date | Date[]>;
|
||||
default: string;
|
||||
};
|
||||
rangeSeparator: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
startPlaceholder: StringConstructor;
|
||||
endPlaceholder: StringConstructor;
|
||||
defaultValue: {
|
||||
type: import("vue").PropType<Date | Date[]>;
|
||||
};
|
||||
defaultTime: {
|
||||
type: import("vue").PropType<Date | Date[]>;
|
||||
};
|
||||
isRange: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabledHours: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledMinutes: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledSeconds: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledDate: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
cellClassName: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
shortcuts: {
|
||||
type: ArrayConstructor;
|
||||
default: () => any[];
|
||||
};
|
||||
arrowControl: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
validateEvent: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
unlinkPanels: BooleanConstructor;
|
||||
}, {
|
||||
elPopperOptions: Options;
|
||||
isDatesPicker: import("vue").ComputedRef<boolean>;
|
||||
handleEndChange: () => void;
|
||||
handleStartChange: () => void;
|
||||
handleStartInput: (event: any) => void;
|
||||
handleEndInput: (event: any) => void;
|
||||
onUserInput: (e: any) => void;
|
||||
handleChange: () => void;
|
||||
handleKeydown: (event: any) => void;
|
||||
popperPaneRef: import("vue").ComputedRef<any>;
|
||||
onClickOutside: () => void;
|
||||
pickerSize: import("vue").ComputedRef<any>;
|
||||
isRangeInput: import("vue").ComputedRef<boolean>;
|
||||
onMouseLeave: () => void;
|
||||
onMouseEnter: () => void;
|
||||
onClearIconClick: (event: any) => void;
|
||||
showClose: import("vue").Ref<boolean>;
|
||||
triggerClass: import("vue").ComputedRef<unknown>;
|
||||
onPick: (date?: any, visible?: boolean) => void;
|
||||
handleFocus: (e: any) => void;
|
||||
pickerVisible: import("vue").Ref<boolean>;
|
||||
pickerActualVisible: import("vue").Ref<boolean>;
|
||||
displayValue: import("vue").ComputedRef<any>;
|
||||
parsedValue: import("vue").ComputedRef<any>;
|
||||
setSelectionRange: (start: any, end: any, pos: any) => void;
|
||||
refPopper: any;
|
||||
pickerDisabled: import("vue").ComputedRef<boolean>;
|
||||
onSetPickerOption: (e: any) => void;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "focus" | "blur")[], "update:modelValue" | "change" | "focus" | "blur", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
name: unknown;
|
||||
popperClass: unknown;
|
||||
type: unknown;
|
||||
clearable: boolean;
|
||||
clearIcon: unknown;
|
||||
editable: boolean;
|
||||
prefixIcon: unknown;
|
||||
readonly: boolean;
|
||||
disabled: boolean;
|
||||
placeholder: unknown;
|
||||
popperOptions: unknown;
|
||||
modelValue: unknown;
|
||||
rangeSeparator: unknown;
|
||||
isRange: boolean;
|
||||
shortcuts: unknown;
|
||||
arrowControl: boolean;
|
||||
validateEvent: boolean;
|
||||
unlinkPanels: boolean;
|
||||
} & {
|
||||
format?: unknown;
|
||||
size?: unknown;
|
||||
startPlaceholder?: unknown;
|
||||
endPlaceholder?: unknown;
|
||||
defaultValue?: unknown;
|
||||
defaultTime?: unknown;
|
||||
disabledHours?: unknown;
|
||||
disabledMinutes?: unknown;
|
||||
disabledSeconds?: unknown;
|
||||
disabledDate?: unknown;
|
||||
cellClassName?: unknown;
|
||||
}>, {
|
||||
name: unknown;
|
||||
popperClass: unknown;
|
||||
type: unknown;
|
||||
clearable: boolean;
|
||||
clearIcon: unknown;
|
||||
editable: boolean;
|
||||
prefixIcon: unknown;
|
||||
readonly: boolean;
|
||||
disabled: boolean;
|
||||
placeholder: unknown;
|
||||
popperOptions: unknown;
|
||||
modelValue: unknown;
|
||||
rangeSeparator: unknown;
|
||||
isRange: boolean;
|
||||
shortcuts: unknown;
|
||||
arrowControl: boolean;
|
||||
validateEvent: boolean;
|
||||
unlinkPanels: boolean;
|
||||
}>;
|
||||
export default _default;
|
||||
103
src/components/common/MytTimePicker/src/common/props.d.ts
vendored
Normal file
103
src/components/common/MytTimePicker/src/common/props.d.ts
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
import type { PropType } from 'vue';
|
||||
import type { Options } from '@popperjs/core';
|
||||
export declare const defaultProps: {
|
||||
name: {
|
||||
type: (ArrayConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
popperClass: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
format: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
type: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
clearable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
clearIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
editable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
prefixIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
size: {
|
||||
type: PropType<ComponentSize>;
|
||||
validator: (val: string) => boolean;
|
||||
};
|
||||
readonly: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabled: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
placeholder: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
popperOptions: {
|
||||
type: PropType<Options>;
|
||||
default: () => {};
|
||||
};
|
||||
modelValue: {
|
||||
type: PropType<string | Date | Date[]>;
|
||||
default: string;
|
||||
};
|
||||
rangeSeparator: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
startPlaceholder: StringConstructor;
|
||||
endPlaceholder: StringConstructor;
|
||||
defaultValue: {
|
||||
type: PropType<Date | Date[]>;
|
||||
};
|
||||
defaultTime: {
|
||||
type: PropType<Date | Date[]>;
|
||||
};
|
||||
isRange: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabledHours: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledMinutes: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledSeconds: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledDate: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
cellClassName: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
shortcuts: {
|
||||
type: ArrayConstructor;
|
||||
default: () => any[];
|
||||
};
|
||||
arrowControl: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
validateEvent: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
unlinkPanels: BooleanConstructor;
|
||||
};
|
||||
86
src/components/common/MytTimePicker/src/time-picker-com/basic-time-spinner.vue.d.ts
vendored
Normal file
86
src/components/common/MytTimePicker/src/time-picker-com/basic-time-spinner.vue.d.ts
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
import { Ref, PropType } from 'vue';
|
||||
import { Dayjs } from 'dayjs';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
role: {
|
||||
type: StringConstructor;
|
||||
required: true;
|
||||
};
|
||||
spinnerDate: {
|
||||
type: PropType<Dayjs>;
|
||||
required: true;
|
||||
};
|
||||
showSeconds: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
arrowControl: BooleanConstructor;
|
||||
amPmMode: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
disabledHours: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledMinutes: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledSeconds: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
}, {
|
||||
getRefId: (item: any) => string;
|
||||
spinnerItems: import("vue").ComputedRef<string[]>;
|
||||
currentScrollbar: any;
|
||||
hours: import("vue").ComputedRef<any>;
|
||||
minutes: import("vue").ComputedRef<any>;
|
||||
seconds: import("vue").ComputedRef<any>;
|
||||
hoursList: import("vue").ComputedRef<any[]>;
|
||||
minutesList: import("vue").ComputedRef<any[]>;
|
||||
arrowHourList: import("vue").ComputedRef<any[]>;
|
||||
arrowMinuteList: import("vue").ComputedRef<any[]>;
|
||||
arrowSecondList: import("vue").ComputedRef<any[]>;
|
||||
getAmPmFlag: (hour: any) => string;
|
||||
emitSelectRange: (type: any) => void;
|
||||
adjustCurrentSpinner: (type: any) => void;
|
||||
typeItemHeight: (type: any) => any;
|
||||
listHoursRef: Ref<HTMLElement>;
|
||||
listMinutesRef: Ref<HTMLElement>;
|
||||
listSecondsRef: Ref<HTMLElement>;
|
||||
onIncreaseClick: () => void;
|
||||
onDecreaseClick: () => void;
|
||||
handleClick: (type: any, { value, disabled }: {
|
||||
value: any;
|
||||
disabled: any;
|
||||
}) => void;
|
||||
secondsList: import("vue").ComputedRef<any[]>;
|
||||
timePartsMap: import("vue").ComputedRef<{
|
||||
hours: import("vue").ComputedRef<any>;
|
||||
minutes: import("vue").ComputedRef<any>;
|
||||
seconds: import("vue").ComputedRef<any>;
|
||||
}>;
|
||||
arrowListMap: import("vue").ComputedRef<{
|
||||
hours: import("vue").ComputedRef<any[]>;
|
||||
minutes: import("vue").ComputedRef<any[]>;
|
||||
seconds: import("vue").ComputedRef<any[]>;
|
||||
}>;
|
||||
listMap: import("vue").ComputedRef<{
|
||||
hours: import("vue").ComputedRef<any[]>;
|
||||
minutes: import("vue").ComputedRef<any[]>;
|
||||
seconds: import("vue").ComputedRef<any[]>;
|
||||
}>;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "select-range" | "set-option")[], "change" | "select-range" | "set-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
role: unknown;
|
||||
spinnerDate: unknown;
|
||||
showSeconds: boolean;
|
||||
arrowControl: boolean;
|
||||
amPmMode: unknown;
|
||||
} & {
|
||||
disabledHours?: unknown;
|
||||
disabledMinutes?: unknown;
|
||||
disabledSeconds?: unknown;
|
||||
}>, {
|
||||
showSeconds: boolean;
|
||||
arrowControl: boolean;
|
||||
amPmMode: unknown;
|
||||
}>;
|
||||
export default _default;
|
||||
45
src/components/common/MytTimePicker/src/time-picker-com/panel-time-pick.vue.d.ts
vendored
Normal file
45
src/components/common/MytTimePicker/src/time-picker-com/panel-time-pick.vue.d.ts
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
import { PropType } from 'vue';
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
visible: BooleanConstructor;
|
||||
actualVisible: {
|
||||
type: BooleanConstructor;
|
||||
default: any;
|
||||
};
|
||||
datetimeRole: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
parsedValue: {
|
||||
type: PropType<string | dayjs.Dayjs>;
|
||||
};
|
||||
format: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}, {
|
||||
transitionName: import("vue").ComputedRef<"" | "el-zoom-in-top">;
|
||||
arrowControl: any;
|
||||
onSetOption: (e: any) => void;
|
||||
t: (...args: any[]) => string;
|
||||
handleConfirm: (visible: boolean, first: any) => void;
|
||||
handleChange: (_date: Dayjs) => void;
|
||||
setSelectionRange: (start: any, end: any) => void;
|
||||
amPmMode: import("vue").ComputedRef<"" | "A" | "a">;
|
||||
showSeconds: import("vue").ComputedRef<any>;
|
||||
handleCancel: () => void;
|
||||
disabledHours: any;
|
||||
disabledMinutes: any;
|
||||
disabledSeconds: any;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "select-range" | "set-picker-option")[], "pick" | "select-range" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
visible: boolean;
|
||||
actualVisible: boolean;
|
||||
format: unknown;
|
||||
} & {
|
||||
datetimeRole?: unknown;
|
||||
parsedValue?: unknown;
|
||||
}>, {
|
||||
visible: boolean;
|
||||
actualVisible: boolean;
|
||||
format: unknown;
|
||||
}>;
|
||||
export default _default;
|
||||
44
src/components/common/MytTimePicker/src/time-picker-com/panel-time-range.vue.d.ts
vendored
Normal file
44
src/components/common/MytTimePicker/src/time-picker-com/panel-time-range.vue.d.ts
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
import { PropType } from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
visible: BooleanConstructor;
|
||||
actualVisible: BooleanConstructor;
|
||||
parsedValue: {
|
||||
type: PropType<string | dayjs.Dayjs[]>;
|
||||
};
|
||||
format: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}, {
|
||||
arrowControl: any;
|
||||
onSetOption: (e: any) => void;
|
||||
setMaxSelectionRange: (start: any, end: any) => void;
|
||||
setMinSelectionRange: (start: any, end: any) => void;
|
||||
btnConfirmDisabled: import("vue").ComputedRef<boolean>;
|
||||
handleCancel: () => void;
|
||||
handleConfirm: (visible?: boolean) => void;
|
||||
t: (...args: any[]) => string;
|
||||
showSeconds: import("vue").ComputedRef<any>;
|
||||
minDate: import("vue").ComputedRef<any>;
|
||||
maxDate: import("vue").ComputedRef<any>;
|
||||
amPmMode: import("vue").ComputedRef<"" | "A" | "a">;
|
||||
handleMinChange: (date: any) => void;
|
||||
handleMaxChange: (date: any) => void;
|
||||
minSelectableRange: import("vue").Ref<any[]>;
|
||||
maxSelectableRange: import("vue").Ref<any[]>;
|
||||
disabledHours_: (role: any, compare: any) => any[];
|
||||
disabledMinutes_: (hour: any, role: any, compare: any) => any;
|
||||
disabledSeconds_: (hour: any, minute: any, role: any, compare: any) => any;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "select-range" | "set-picker-option")[], "pick" | "select-range" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
visible: boolean;
|
||||
actualVisible: boolean;
|
||||
format: unknown;
|
||||
} & {
|
||||
parsedValue?: unknown;
|
||||
}>, {
|
||||
visible: boolean;
|
||||
actualVisible: boolean;
|
||||
format: unknown;
|
||||
}>;
|
||||
export default _default;
|
||||
155
src/components/common/MytTimePicker/src/time-picker-com/useTimePicker.d.ts
vendored
Normal file
155
src/components/common/MytTimePicker/src/time-picker-com/useTimePicker.d.ts
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
import { Dayjs } from 'dayjs';
|
||||
export declare const getTimeLists: (disabledHours: any, disabledMinutes: any, disabledSeconds: any) => {
|
||||
getHoursList: (role: any, compare?: any) => any[];
|
||||
getMinutesList: (hour: any, role: any, compare?: any) => any[];
|
||||
getSecondsList: (hour: any, minute: any, role: any, compare?: any) => any[];
|
||||
};
|
||||
export declare const getAvaliableArrs: (disabledHours: any, disabledMinutes: any, disabledSeconds: any) => {
|
||||
getAvaliableHours: (role: any, compare?: any) => any;
|
||||
getAvaliableMinutes: (hour: any, role: any, compare?: any) => any;
|
||||
getAvaliableSeconds: (hour: any, minute: any, role: any, compare?: any) => any;
|
||||
};
|
||||
export declare const useOldValue: (props: {
|
||||
parsedValue?: string | Dayjs | Dayjs[];
|
||||
visible: boolean;
|
||||
}) => import("vue").Ref<string | {
|
||||
clone: () => Dayjs;
|
||||
isValid: () => boolean;
|
||||
year: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
month: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
date: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
day: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
hour: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
minute: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
second: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
millisecond: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
set: (unit: import("dayjs").UnitType, value: number) => Dayjs;
|
||||
get: (unit: import("dayjs").UnitType) => number;
|
||||
add: (value: number, unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
subtract: (value: number, unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
startOf: (unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
endOf: (unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
format: (template?: string) => string;
|
||||
diff: (date: import("dayjs").ConfigType, unit?: "year" | "month" | "date" | "day" | "hour" | "minute" | "second" | "millisecond" | "week" | "d" | "M" | "y" | "h" | "m" | "s" | "ms" | "w" | "quarter" | "Q", float?: boolean) => number;
|
||||
valueOf: () => number;
|
||||
unix: () => number;
|
||||
daysInMonth: () => number;
|
||||
toDate: () => Date;
|
||||
toJSON: () => string;
|
||||
toISOString: () => string;
|
||||
toString: () => string;
|
||||
utcOffset: () => number;
|
||||
isBefore: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
isSame: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
isAfter: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
locale: {
|
||||
(): string;
|
||||
(preset: string | ILocale, object?: Partial<ILocale>): Dayjs;
|
||||
};
|
||||
localeData: () => any;
|
||||
week: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
weekYear: () => number;
|
||||
dayOfYear: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
isSameOrAfter: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
isSameOrBefore: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
} | {
|
||||
clone: () => Dayjs;
|
||||
isValid: () => boolean;
|
||||
year: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
month: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
date: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
day: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
hour: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
minute: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
second: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
millisecond: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
set: (unit: import("dayjs").UnitType, value: number) => Dayjs;
|
||||
get: (unit: import("dayjs").UnitType) => number;
|
||||
add: (value: number, unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
subtract: (value: number, unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
startOf: (unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
endOf: (unit: import("dayjs").OpUnitType) => Dayjs;
|
||||
format: (template?: string) => string;
|
||||
diff: (date: import("dayjs").ConfigType, unit?: "year" | "month" | "date" | "day" | "hour" | "minute" | "second" | "millisecond" | "week" | "d" | "M" | "y" | "h" | "m" | "s" | "ms" | "w" | "quarter" | "Q", float?: boolean) => number;
|
||||
valueOf: () => number;
|
||||
unix: () => number;
|
||||
daysInMonth: () => number;
|
||||
toDate: () => Date;
|
||||
toJSON: () => string;
|
||||
toISOString: () => string;
|
||||
toString: () => string;
|
||||
utcOffset: () => number;
|
||||
isBefore: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
isSame: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
isAfter: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
locale: {
|
||||
(): string;
|
||||
(preset: string | ILocale, object?: Partial<ILocale>): Dayjs;
|
||||
};
|
||||
localeData: () => any;
|
||||
week: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
weekYear: () => number;
|
||||
dayOfYear: {
|
||||
(): number;
|
||||
(value: number): Dayjs;
|
||||
};
|
||||
isSameOrAfter: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
isSameOrBefore: (date: import("dayjs").ConfigType, unit?: import("dayjs").OpUnitType) => boolean;
|
||||
}[]>;
|
||||
154
src/components/common/MytTimePicker/src/time-picker.d.ts
vendored
Normal file
154
src/components/common/MytTimePicker/src/time-picker.d.ts
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
isRange: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
name: {
|
||||
type: (ArrayConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
popperClass: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
format: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
type: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
clearable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
clearIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
editable: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
prefixIcon: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
size: {
|
||||
type: import("vue").PropType<ComponentSize>;
|
||||
validator: (val: string) => boolean;
|
||||
};
|
||||
readonly: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
disabled: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
placeholder: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
popperOptions: {
|
||||
type: import("vue").PropType<import("@popperjs/core").Options>;
|
||||
default: () => {};
|
||||
};
|
||||
modelValue: {
|
||||
type: import("vue").PropType<string | Date | Date[]>;
|
||||
default: string;
|
||||
};
|
||||
rangeSeparator: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
startPlaceholder: StringConstructor;
|
||||
endPlaceholder: StringConstructor;
|
||||
defaultValue: {
|
||||
type: import("vue").PropType<Date | Date[]>;
|
||||
};
|
||||
defaultTime: {
|
||||
type: import("vue").PropType<Date | Date[]>;
|
||||
};
|
||||
disabledHours: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledMinutes: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledSeconds: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
disabledDate: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
cellClassName: {
|
||||
type: FunctionConstructor;
|
||||
};
|
||||
shortcuts: {
|
||||
type: ArrayConstructor;
|
||||
default: () => any[];
|
||||
};
|
||||
arrowControl: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
validateEvent: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
unlinkPanels: BooleanConstructor;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
||||
isRange: boolean;
|
||||
name: unknown;
|
||||
popperClass: unknown;
|
||||
type: unknown;
|
||||
clearable: boolean;
|
||||
clearIcon: unknown;
|
||||
editable: boolean;
|
||||
prefixIcon: unknown;
|
||||
readonly: boolean;
|
||||
disabled: boolean;
|
||||
placeholder: unknown;
|
||||
popperOptions: unknown;
|
||||
modelValue: unknown;
|
||||
rangeSeparator: unknown;
|
||||
shortcuts: unknown;
|
||||
arrowControl: boolean;
|
||||
validateEvent: boolean;
|
||||
unlinkPanels: boolean;
|
||||
} & {
|
||||
format?: unknown;
|
||||
size?: unknown;
|
||||
startPlaceholder?: unknown;
|
||||
endPlaceholder?: unknown;
|
||||
defaultValue?: unknown;
|
||||
defaultTime?: unknown;
|
||||
disabledHours?: unknown;
|
||||
disabledMinutes?: unknown;
|
||||
disabledSeconds?: unknown;
|
||||
disabledDate?: unknown;
|
||||
cellClassName?: unknown;
|
||||
}>, {
|
||||
isRange: boolean;
|
||||
name: unknown;
|
||||
popperClass: unknown;
|
||||
type: unknown;
|
||||
clearable: boolean;
|
||||
clearIcon: unknown;
|
||||
editable: boolean;
|
||||
prefixIcon: unknown;
|
||||
readonly: boolean;
|
||||
disabled: boolean;
|
||||
placeholder: unknown;
|
||||
popperOptions: unknown;
|
||||
modelValue: unknown;
|
||||
rangeSeparator: unknown;
|
||||
shortcuts: unknown;
|
||||
arrowControl: boolean;
|
||||
validateEvent: boolean;
|
||||
unlinkPanels: boolean;
|
||||
}>;
|
||||
export default _default;
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="right-box__header">
|
||||
<div class="header__title">{{editRole.id ? $t('config.roles.editRole') : $t('config.roles.createRole')}}</div>
|
||||
<div class="header__operation">
|
||||
<span v-cancel="{object: editRole, func: esc}"><i class="nz-icon nz-icon-close"></i></span>
|
||||
<span v-cancel="{object: editRole, func: esc}"><i class="cn-icon cn-icon-close"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right-box__container">
|
||||
@@ -21,7 +21,7 @@
|
||||
<el-form-item :label="$t('config.roles.permission')">
|
||||
<!--<div class="tree-option">
|
||||
<button type="button" class="nz-btn nz-btn-size-small-new nz-btn-style-light-new option-btn" style="margin-left: 0px;" @click="expandAllOrNone" :class="{'btn-active':expandAllFlag}">展开/收缩</button>
|
||||
<button type="button" class="nz-btn nz-btn-size-small-new nz-btn-style-light-new option-btn" @click="selectAllOrNone" :class="{'btn-active':selectAllFlag}"><span ><i class="nz-icon nz-icon-delete"></i></span></button>
|
||||
<button type="button" class="nz-btn nz-btn-size-small-new nz-btn-style-light-new option-btn" @click="selectAllOrNone" :class="{'btn-active':selectAllFlag}"><span ><i class="cn-icon cn-icon-delete"></i></span></button>
|
||||
</div>-->
|
||||
<el-tree :data="menus" :default-expand-all="expandAllFlag" :props="{label:labelFormatter}" @check-change="selectChange" class="tree-border" node-key="id" ref="menuTree" show-checkbox id="role-box-input-menus">
|
||||
<template #default="{ data }">
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
<!-- 顶部工具栏 -->
|
||||
<div class="main-container">
|
||||
<div class="top-tools">
|
||||
<myDatePicker
|
||||
v-model="value1"
|
||||
type="datetime"/>
|
||||
<div class="top-tool-left" style="min-width: 300px">
|
||||
<slot name="top-tool-left"></slot>
|
||||
</div>
|
||||
@@ -42,11 +45,13 @@
|
||||
|
||||
<script>
|
||||
import columnCustomize from '@/components/table/ColumnCustomize'
|
||||
import myDatePicker from '../common/MyDatePicker'
|
||||
import { fromRoute } from '@/utils/constants'
|
||||
|
||||
export default {
|
||||
name: 'cnDataList',
|
||||
components: {
|
||||
myDatePicker,
|
||||
columnCustomize
|
||||
},
|
||||
props: {
|
||||
@@ -74,7 +79,8 @@ export default {
|
||||
tools: {
|
||||
showCustomTableTitle: false // 自定义列弹框是否显示
|
||||
},
|
||||
showLayout: []
|
||||
showLayout: [],
|
||||
value1: 1623997984000
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
@click="handler(item,index)"
|
||||
:id="'element-set-el-'+index"
|
||||
>
|
||||
<i class="nz-icon nz-icon-check" v-if="!allowedAll && !item.allowed && (index === 0 || index === 1 || item.visibility === 'disabled')"></i>
|
||||
<i v-else class="nz-icon nz-icon-check" v-show="item.show"></i>
|
||||
<i class="cn-icon cn-icon-check" v-if="!allowedAll && !item.allowed && (index === 0 || index === 1 || item.visibility === 'disabled')"></i>
|
||||
<i v-else class="cn-icon cn-icon-check" v-show="item.show"></i>
|
||||
<span>{{item.label}}</span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -56,15 +56,15 @@
|
||||
</template>
|
||||
<template #default="scope">
|
||||
<div class="table-operation-items">
|
||||
<button class="table-operation-item" @click="tableOperation(['edit', scope.row])"><i class="nz-icon nz-icon-view1"></i></button>
|
||||
<button class="table-operation-item" @click="tableOperation(['edit', scope.row])"><i class="cn-icon cn-icon-view1"></i></button>
|
||||
<el-dropdown size="medium" trigger="hover" @command="tableOperation">
|
||||
<div class="table-operation-item table-operation-item--more">
|
||||
<i class="nz-icon nz-icon-more3"></i>
|
||||
<i class="cn-icon cn-icon-more3"></i>
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu >
|
||||
<el-dropdown-item v-has="'user_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'user_delete'" :command="['delete', scope.row]" :disabled="scope.row.id === 1"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'user_edit'" :command="['edit', scope.row]"><i class="cn-icon cn-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'user_delete'" :command="['delete', scope.row]" :disabled="scope.row.id === 1"><i class="cn-icon cn-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
|
||||
@@ -63,15 +63,15 @@
|
||||
</template>
|
||||
<template #default="scope">
|
||||
<div class="table-operation-items">
|
||||
<button class="table-operation-item" @click="tableOperation(['edit', scope.row])"><i class="nz-icon nz-icon-view1"></i></button>
|
||||
<button class="table-operation-item" @click="tableOperation(['edit', scope.row])"><i class="cn-icon cn-icon-view1"></i></button>
|
||||
<el-dropdown size="medium" trigger="hover" @command="tableOperation">
|
||||
<div class="table-operation-item table-operation-item--more">
|
||||
<i class="nz-icon nz-icon-more3"></i>
|
||||
<i class="cn-icon cn-icon-more3"></i>
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu >
|
||||
<el-dropdown-item v-has="'user_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'user_delete'" :command="['delete', scope.row]" :disabled="scope.row.id === 1"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'user_edit'" :command="['edit', scope.row]"><i class="cn-icon cn-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>
|
||||
<el-dropdown-item v-has="'user_delete'" :command="['delete', scope.row]" :disabled="scope.row.id === 1"><i class="cn-icon cn-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
|
||||
37
src/jest.config.js
Normal file
37
src/jest.config.js
Normal file
@@ -0,0 +1,37 @@
|
||||
module.exports = {
|
||||
globals: {
|
||||
// work around: https://github.com/kulshekhar/ts-jest/issues/748#issuecomment-423528659
|
||||
'ts-jest': {
|
||||
diagnostics: {
|
||||
ignoreCodes: [151001],
|
||||
},
|
||||
},
|
||||
},
|
||||
testEnvironment: 'jsdom',
|
||||
transform: {
|
||||
'^.+\\.vue$': 'vue-jest',
|
||||
'^.+\\.(t|j)sx?$': [
|
||||
'babel-jest', {
|
||||
presets: [
|
||||
[
|
||||
'@babel/preset-env',
|
||||
{
|
||||
targets: {
|
||||
node: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
'@babel/preset-typescript',
|
||||
],
|
||||
plugins: [
|
||||
'@vue/babel-plugin-jsx',
|
||||
'@babel/plugin-proposal-class-properties',
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'json'],
|
||||
// u can change this option to a more specific folder for test single component or util when dev
|
||||
// for example, ['<rootDir>/packages/input']
|
||||
roots: ['<rootDir>'],
|
||||
}
|
||||
21
src/tsconfig.json
Normal file
21
src/tsconfig.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "ESNext",
|
||||
"declaration": true,
|
||||
"noImplicitAny": false,
|
||||
"removeComments": true,
|
||||
"moduleResolution": "node",
|
||||
"esModuleInterop": true,
|
||||
"jsx": "preserve",
|
||||
"noLib": false,
|
||||
"target": "es6",
|
||||
"sourceMap": true,
|
||||
"lib": [
|
||||
"ESNext", "DOM"
|
||||
],
|
||||
"allowSyntheticDefaultImports": true
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
}
|
||||
@@ -5,12 +5,12 @@
|
||||
v-model:custom-table-title="tools.customTableTitle"
|
||||
:api="url"
|
||||
:from="fromRoute.roles"
|
||||
:layout="['columnCustomize']"
|
||||
:layout="['columnCustomize','elementSet']"
|
||||
>
|
||||
<template v-slot:top-tool-right>
|
||||
<button id="roles-add" v-has="'role_add'" :title="$t('overall.createRole')" class="top-tool-btn margin-r-10"
|
||||
type="button" @click="add">
|
||||
<i class="nz-icon-create-square nz-icon"></i>
|
||||
<i class="cn-icon-add cn-icon"></i>
|
||||
</button>
|
||||
<delete-button id="role-list-batch-delete" v-has="'role_delete'" :api="url" :delete-objs="batchDeleteObjs" @after="getTableData" @before="delFlag=true"></delete-button>
|
||||
</template>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
v-model:custom-table-title="tools.customTableTitle"
|
||||
:api="url"
|
||||
:from="fromRoute.user"
|
||||
:layout="['columnCustomize']"
|
||||
:layout="['columnCustomize','elementSet']"
|
||||
>
|
||||
<template #top-tool-right>
|
||||
<button
|
||||
@@ -15,7 +15,7 @@
|
||||
type="button"
|
||||
@click="add"
|
||||
>
|
||||
<i class="cn-icon-create-square cn-icon"/>
|
||||
<i class="cn-icon-add cn-icon"/>
|
||||
</button>
|
||||
</template>
|
||||
<template #default>
|
||||
|
||||
21
typings/vue-shim.d.ts
vendored
Normal file
21
typings/vue-shim.d.ts
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
declare module '*.vue' {
|
||||
import { App, defineComponent } from 'vue'
|
||||
const component: ReturnType<typeof defineComponent> & {
|
||||
install(app: App): void
|
||||
}
|
||||
export default component
|
||||
}
|
||||
|
||||
declare type Nullable<T> = T | null;
|
||||
|
||||
declare type CustomizedHTMLElement<T> = HTMLElement & T
|
||||
|
||||
declare type Indexable<T> = {
|
||||
[key: string]: T
|
||||
}
|
||||
|
||||
declare type Hash<T> = Indexable<T>
|
||||
|
||||
declare type TimeoutHandle = ReturnType<typeof global.setTimeout>
|
||||
|
||||
declare type ComponentSize = 'large' | 'medium' | 'small' | 'mini'
|
||||
11
typings/vue-test-utils.d.ts
vendored
Normal file
11
typings/vue-test-utils.d.ts
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
import { ComponentPublicInstance } from 'vue'
|
||||
|
||||
declare module '@vue/test-utils' {
|
||||
interface DOMWrapper<ElementType> {
|
||||
style: CSSStyleDeclaration
|
||||
}
|
||||
|
||||
interface VueWrapper<T extends ComponentPublicInstance> {
|
||||
style: CSSStyleDeclaration
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user