Browse Source

档案管理

release_0.0.4^2^2
LUCAS 3 years ago
parent
commit
60499db2f2
  1. 4
      api/.vscode/launch.json
  2. 254
      api/app/lib/controllers/file/index.js
  3. 8
      api/app/lib/index.js
  4. 31
      api/app/lib/models/file-road.js
  5. 32
      api/app/lib/models/file-type.js
  6. 73
      api/app/lib/models/files.js
  7. 21
      api/app/lib/routes/file/index.js
  8. 18
      api/log/development.log
  9. 2
      api/package.json
  10. 170
      web/client/assets/color.less
  11. 89
      web/client/src/sections/fillion/actions/file.js
  12. 2
      web/client/src/sections/fillion/actions/index.js
  13. 2
      web/client/src/sections/fillion/actions/infor.js
  14. 73
      web/client/src/sections/fillion/components/file/roadModal.js
  15. 45
      web/client/src/sections/fillion/components/file/uploadModal.js
  16. 356
      web/client/src/sections/fillion/components/fileTable.js
  17. 28
      web/client/src/sections/fillion/components/protable.less
  18. 40
      web/client/src/sections/fillion/containers/file.js
  19. 3
      web/client/src/sections/fillion/containers/index.js
  20. 3
      web/client/src/sections/fillion/nav-item.js
  21. 11
      web/client/src/sections/fillion/routes.js
  22. 2
      web/client/src/themes/light.json
  23. 8
      web/client/src/utils/webapi.js
  24. 5
      web/log/development.txt
  25. 2
      web/package.json

4
api/.vscode/launch.json

@ -13,8 +13,8 @@
"NODE_ENV": "development" "NODE_ENV": "development"
}, },
"args": [ "args": [
"-p 14000", "-p 4000",
"-f http://localhost:14000", "-f http://localhost:4000",
"-g postgres://postgres:123@10.8.30.32:5432/highways4good", "-g postgres://postgres:123@10.8.30.32:5432/highways4good",
"--qnak XuDgkao6cL0HidoMAPnA5OB10Mc_Ew08mpIfRJK5", "--qnak XuDgkao6cL0HidoMAPnA5OB10Mc_Ew08mpIfRJK5",
"--qnsk yewcieZLzKZuDfig0wLZ9if9jKp2P_1jd3CMJPSa", "--qnsk yewcieZLzKZuDfig0wLZ9if9jKp2P_1jd3CMJPSa",

254
api/app/lib/controllers/file/index.js

@ -0,0 +1,254 @@
'use strict';
const request = require('superagent');
const moment = require('moment');
async function createProjectDir(ctx, next) {
let error = { message: '新增项目目录失败' }, rs = null;
const { roadName } = ctx.query;
try {
const models = ctx.fs.dc.models;
rs = await models.FileRoad.create({
roadName
})
error = null;
} catch (err) {
ctx.status = 500;
ctx.body = { detail: err, ...error };
}
if (error) {
ctx.status = 400;
ctx.body = { ...error };
} else {
ctx.status = 200;
ctx.body = { message: '新增项目目录成功!', result: rs };
}
}
async function getFileDirs(ctx, next) {
let error = { message: '查询项目目录失败' }, rslt = null;
try {
const models = ctx.fs.dc.models;
rslt = await models.FileRoad.findAll({
// include: [{
// model: models.FileType
// }]
})
error = null;
} catch (err) {
ctx.status = 500;
ctx.body = { detail: err, ...error };
}
if (error) {
ctx.status = 400;
ctx.body = { ...error };
} else {
ctx.status = 200;
ctx.body = rslt;
}
}
async function delFileDir(ctx, next) {
let error = { message: '文件夹删除失败' };
let rslt = [], fileDirIds = [];
try {
const { type, id } = ctx.query, // type == parent / child
models = ctx.fs.dc.models;
const transaction = await ctx.fs.dc.orm.transaction();
if (type == 'parent') {
let fileTypes = await models.FileType.findAll({ where: { rId: id } });
if (fileTypes && fileTypes.length) {
fileDirIds = fileTypes.map(item => item.fId);
}
if (fileDirIds && fileDirIds.length) {
await models.Files.destroy({
where: {
fId: { $in: fileDirIds }
},
transaction
})
}
await models.FileType.destroy({ where: { rId: id }, transaction })
await models.FileRoad.destroy({ where: { rId: id }, transaction })
} else {
await models.Files.destroy({ where: { fId: id }, transaction })
await models.FileType.destroy({ where: { fId: id }, transaction })
}
await transaction.commit();
error = null;
} catch (err) {
await transaction.rollback();
ctx.status = 500;
ctx.body = { detail: err, ...error };
}
if (error) {
ctx.status = 400;
ctx.body = { ...error };
} else {
ctx.status = 200;
ctx.body = { message: '文件夹删除成功' };
}
}
async function uploadFile(ctx, next) {
let error = { message: '文件上传失败' }, rslt = null;
const { typeId, userId, userName, fileSize, fileName, fileUrl, fileExt, roadId } = ctx.request.body
try {
const models = ctx.fs.dc.models;
rslt = await models.Files.create({
fId: typeId,
uploaderId: userId,
roadId,
createDate: moment().format('YYYY-MM-DD HH:mm:ss'),
fileSize,
fileName,
fileUrl,
fileExt,
uploaderName: userName,
isDelete: false
})
error = null;
} catch (err) {
ctx.status = 500;
ctx.body = { detail: err, ...error };
}
if (error) {
ctx.status = 400;
ctx.body = { ...error };
} else {
ctx.status = 200;
ctx.body = { message: '文件上传成功', rslt };
}
}
async function deleteFile(ctx, next) {
let error = { message: '文件删除失败' }, rslt = null;
const { id } = ctx.query;
try {
const models = ctx.fs.dc.models;
rslt = await models.Files.update({
isDelete: true
}, {
where: { id: id }
})
error = null;
} catch (err) {
ctx.status = 500;
ctx.body = { detail: err, ...error };
}
if (error) {
ctx.status = 400;
ctx.body = { ...error };
} else {
ctx.status = 200;
ctx.body = { message: '文件删除成功', rslt };
}
}
async function getFileList(ctx, next) {
let error = { message: '文件上传失败' }, rslt = { list: [], counter: 0, type: '' };
const { fId, limit, offset, searchTxt, roadId } = ctx.query;
let limit_ = limit, offset_ = offset;
if (limit == null || limit < 0) {
limit_ = 10;
}
if (offset == null || offset < 0) {
offset_ = 0;
}
try {
const models = ctx.fs.dc.models;
let queryOptions = { isDelete: false }
if (searchTxt && searchTxt.trim() != '') {
queryOptions.fileName = { $like: `%${searchTxt}%` }
}
if (fId) {
queryOptions.fId = fId
}
if (roadId) {
queryOptions.roadId = roadId
}
rslt.type = await models.FileType.findOne({
where: { fId }
})
rslt.list = await models.Files.findAll({
where: queryOptions,
offset: offset_,
limit: limit_,
order: [
['id', 'DESC']
]
})
rslt.counter = await models.Files.count({
where: queryOptions
})
error = null;
} catch (err) {
ctx.status = 500;
ctx.body = { detail: err, ...error };
}
if (error) {
ctx.status = 400;
ctx.body = { ...error };
} else {
ctx.status = 200;
ctx.body = rslt;
}
}
function updateStructDir(opts) {
return async function (ctx, next) {
let error = { message: '文件夹名称更新失败' };
const models = ctx.fs.dc.models;
const { id, name } = ctx.query;
try {
await models.FileRoad.update({ roadName: name }, {
where: {
id: id
},
})
error = null;
} catch (err) {
ctx.status = 500;
ctx.body = { detail: err, ...error };
}
if (error) {
ctx.status = 400;
ctx.body = { ...error };
} else {
ctx.status = 200;
ctx.body = { message: '文件夹名称更新成功' };
}
}
}
module.exports = {
uploadFile,
deleteFile,
getFileList,
createProjectDir,
delFileDir,
getFileDirs,
updateStructDir,
}

8
api/app/lib/index.js

@ -27,7 +27,7 @@ module.exports.models = function (dc) { // dc = { orm: Sequelize对象, ORM: Seq
require(`./models/${filename}`)(dc) require(`./models/${filename}`)(dc)
}); });
const { User, Department, Report } = dc.models; const { User, Department, Report, FileType, Road, Files, FileRoad } = dc.models;
// 定义外键 // 定义外键
User.belongsTo(Department, { foreignKey: 'departmentId', targetKey: 'id' }); User.belongsTo(Department, { foreignKey: 'departmentId', targetKey: 'id' });
Department.hasMany(User, { foreignKey: 'departmentId', sourceKey: 'id' }); Department.hasMany(User, { foreignKey: 'departmentId', sourceKey: 'id' });
@ -35,4 +35,10 @@ module.exports.models = function (dc) { // dc = { orm: Sequelize对象, ORM: Seq
// 定义外键 // 定义外键
Report.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' }); Report.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' });
User.hasMany(Report, { foreignKey: 'userId', sourceKey: 'id' }); User.hasMany(Report, { foreignKey: 'userId', sourceKey: 'id' });
Files.belongsTo(FileType, { foreignKey: 'fId', targetKey: 'fId' });
FileType.hasMany(Files, { foreignKey: 'fId', targetKey: 'fId' });
// Files.belongsTo(Road, { foreignKey: 'roadId', targetKey: 'id' });
// Road.hasMany(Files, { foreignKey: 'roadId', targetKey: 'id' });
}; };

31
api/app/lib/models/file-road.js

@ -0,0 +1,31 @@
'use strict';
module.exports = function (dc) {
const FileRoad = dc.orm.define(
'fileRoad',
{
rId: {
field: 'id',
type: dc.ORM.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
roadName: {
field: 'road_name',
type: dc.ORM.STRING,
},
originalData: {
field: 'original_data',
type: dc.ORM.STRING,
},
},
{
tableName: 'file_road'
}
);
dc.models.FileRoad = FileRoad;
return FileRoad;
};

32
api/app/lib/models/file-type.js

@ -0,0 +1,32 @@
'use strict';
module.exports = function (dc) {
const FileType = dc.orm.define(
'fileType',
{
fId: {
field: 'id',
type: dc.ORM.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
fileType: {
field: 'file_type',
type: dc.ORM.STRING,
},
rId: {
field: 'file_road',
type: dc.ORM.INTEGER,
allowNull: false
},
},
{
tableName: 'file_type'
}
);
dc.models.FileType = FileType;
return FileType;
};

73
api/app/lib/models/files.js

@ -0,0 +1,73 @@
'use strict';
module.exports = function (dc) {
const Files = dc.orm.define(
'files',
{
id: {
field: 'id',
type: dc.ORM.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
fId: {
field: 'file_type',
type: dc.ORM.INTEGER
},
roadId: {
field: 'road_id',
type: dc.ORM.INTEGER
},
uploaderId: {
field: 'uploader_id',
type: dc.ORM.INTEGER
},
uploaderName: {
field: 'uploader_name',
type: dc.ORM.INTEGER
},
startDate: {
field: 'start_date',
type: dc.ORM.DATE,
},
endDate: {
field: 'end_date',
type: dc.ORM.DATE,
},
createDate: {
field: 'create_date',
type: dc.ORM.DATE,
},
fileSize: {
field: 'file_size',
type: dc.ORM.INTEGER,
},
fileName: {
field: 'file_name',
type: dc.ORM.STRING,
},
fileUrl: {
field: 'file_url',
type: dc.ORM.STRING,
},
fileExt: {
field: 'file_ext',
type: dc.ORM.STRING,
},
isDelete: {
field: 'is_delete',
type: dc.ORM.BOOLEAN,
},
},
{
tableName: 'files'
}
);
dc.models.Files = Files;
return Files;
};

21
api/app/lib/routes/file/index.js

@ -0,0 +1,21 @@
'use strict';
const pan = require('../../controllers/file');
module.exports = function (app, router, opts, panCode) {
router.get('/create/struct/dir', pan.createProjectDir);
router.get('/get/file/dirs', pan.getFileDirs);
router.get('/netdisk-files/dir/delete', pan.delFileDir);
router.get('/netdisk-files/struct/dir/update', pan.updateStructDir(opts))
router.post('/netdisk-files/upload', pan.uploadFile);
router.get('/netdisk-files/delete', pan.deleteFile);
router.get('/netdisk-files/query', pan.getFileList);
};

18
api/log/development.log

@ -10008,3 +10008,21 @@
2022-07-27 15:49:28.071 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined 2022-07-27 15:49:28.071 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-27 15:50:36.847 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined 2022-07-27 15:50:36.847 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-27 15:51:05.608 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined 2022-07-27 15:51:05.608 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-28 09:26:54.165 - debug: [FS-LOGGER] Init.
2022-07-28 09:26:54.278 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-28 09:26:54.278 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-28 09:31:20.509 - debug: [FS-LOGGER] Init.
2022-07-28 09:31:20.624 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-28 09:31:20.624 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-28 09:32:20.799 - debug: [FS-LOGGER] Init.
2022-07-28 09:32:20.888 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-28 09:32:20.889 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-28 10:12:11.608 - debug: [FS-LOGGER] Init.
2022-07-28 10:12:11.718 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-28 10:12:11.719 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-28 10:12:31.955 - debug: [FS-LOGGER] Init.
2022-07-28 10:12:32.043 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-28 10:12:32.043 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-28 10:24:23.635 - debug: [FS-LOGGER] Init.
2022-07-28 10:24:23.787 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-28 10:24:23.787 - info: [FS-AUTH] Inject auth and api mv into router.

2
api/package.json

@ -5,7 +5,7 @@
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
"test": "set DEBUG=true&&\"node_modules/.bin/mocha\" --harmony --reporter spec app/test/*.test.js", "test": "set DEBUG=true&&\"node_modules/.bin/mocha\" --harmony --reporter spec app/test/*.test.js",
"start": "set NODE_ENV=development&&node server -p 14000 -g postgres://postgres:123@10.8.30.32:5432/yinjiguanli -f http://localhost:14000", "start": "set NODE_ENV=development&&node server -p 4000 -g postgres://postgres:123@10.8.30.32:5432/highways4good -f http://localhost:14000",
"start:linux": "export NODE_ENV=development&&node server -p 4000 -g postgres://FashionAdmin:123456@10.8.30.39:5432/pm1", "start:linux": "export NODE_ENV=development&&node server -p 4000 -g postgres://FashionAdmin:123456@10.8.30.39:5432/pm1",
"automate": "sequelize-automate -c sequelize-automate.config.js" "automate": "sequelize-automate -c sequelize-automate.config.js"
}, },

170
web/client/assets/color.less

@ -174,7 +174,7 @@ button::-moz-focus-inner,
[type='submit']::-moz-focus-inner {border-style: none;} [type='submit']::-moz-focus-inner {border-style: none;}
fieldset {border: 0;} fieldset {border: 0;}
legend {color: inherit;} legend {color: inherit;}
mark {background-color: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);} mark {background-color: #feffe6;}
::selection {color: #fff;background: @primary-color;} ::selection {color: #fff;background: @primary-color;}
.anticon {color: inherit;} .anticon {color: inherit;}
.ant-fade-enter, .ant-fade-appear {animation-fill-mode: both;} .ant-fade-enter, .ant-fade-appear {animation-fill-mode: both;}
@ -555,18 +555,6 @@ html {--antd-wave-shadow-color: @primary-color;}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled], .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {color: @disabled-color;border-color: @border-color-base;background: @disabled-bg;box-shadow: none;} .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled], .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {color: @disabled-color;border-color: @border-color-base;background: @disabled-bg;box-shadow: none;}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {color: currentcolor;} .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {color: currentcolor;}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {background: transparent;} .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {background: transparent;}
a.ant-btn-disabled,
a.ant-btn-disabled:hover,
a.ant-btn-disabled:focus,
a.ant-btn-disabled:active {color: @disabled-color;border-color: transparent;background: transparent;box-shadow: none;}
a.ant-btn-disabled > a:only-child,
a.ant-btn-disabled:hover > a:only-child,
a.ant-btn-disabled:focus > a:only-child,
a.ant-btn-disabled:active > a:only-child {color: currentcolor;}
a.ant-btn-disabled > a:only-child::after,
a.ant-btn-disabled:hover > a:only-child::after,
a.ant-btn-disabled:focus > a:only-child::after,
a.ant-btn-disabled:active > a:only-child::after {background: transparent;}
.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child), .ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {border-right-color: color(~`colorPalette("@{primary-color}", 5)`);border-left-color: @border-color-base;} .ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child), .ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {border-right-color: color(~`colorPalette("@{primary-color}", 5)`);border-left-color: @border-color-base;}
.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled], .ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {border-right-color: @border-color-base;border-left-color: color(~`colorPalette("@{primary-color}", 5)`);} .ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled], .ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {border-right-color: @border-color-base;border-left-color: color(~`colorPalette("@{primary-color}", 5)`);}
.ant-picker-calendar {color: @text-color;background: @calendar-full-bg;} .ant-picker-calendar {color: @text-color;background: @calendar-full-bg;}
@ -601,6 +589,7 @@ a.ant-btn-disabled:active > a:only-child::after {background: transparent;}
.ant-card-type-inner .ant-card-head {background: @background-color-light;} .ant-card-type-inner .ant-card-head {background: @background-color-light;}
.ant-card-meta-title {color: @heading-color;} .ant-card-meta-title {color: @heading-color;}
.ant-card-meta-description {color: @text-color-secondary;} .ant-card-meta-description {color: @text-color-secondary;}
.ant-card-loading-block {background: linear-gradient(90deg, fade(@card-skeleton-bg, 20%), fade(@card-skeleton-bg, 40%), fade(@card-skeleton-bg, 20%));background-size: 600% 600%;border-radius: 2px;}
.ant-carousel {color: @text-color;} .ant-carousel {color: @text-color;}
.ant-carousel .slick-slider {-webkit-tap-highlight-color: transparent;} .ant-carousel .slick-slider {-webkit-tap-highlight-color: transparent;}
.ant-carousel .slick-prev, .ant-carousel .slick-next {color: transparent;background: transparent;border: 0;} .ant-carousel .slick-prev, .ant-carousel .slick-next {color: transparent;background: transparent;border: 0;}
@ -674,10 +663,8 @@ a.ant-btn-disabled:active > a:only-child::after {background: transparent;}
.ant-comment-actions > li > span:hover {color: @comment-action-hover-color;} .ant-comment-actions > li > span:hover {color: @comment-action-hover-color;}
.ant-picker-status-error.ant-picker, .ant-picker-status-error.ant-picker:not([disabled]):hover {background-color: @input-bg;border-color: #ff4d4f;} .ant-picker-status-error.ant-picker, .ant-picker-status-error.ant-picker:not([disabled]):hover {background-color: @input-bg;border-color: #ff4d4f;}
.ant-picker-status-error.ant-picker-focused, .ant-picker-status-error.ant-picker:focus {border-color: #ff7875;box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);border-right-width: 1px;} .ant-picker-status-error.ant-picker-focused, .ant-picker-status-error.ant-picker:focus {border-color: #ff7875;box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);border-right-width: 1px;}
.ant-picker-status-error.ant-picker .ant-picker-active-bar {background: #ff7875;}
.ant-picker-status-warning.ant-picker, .ant-picker-status-warning.ant-picker:not([disabled]):hover {background-color: @input-bg;border-color: #faad14;} .ant-picker-status-warning.ant-picker, .ant-picker-status-warning.ant-picker:not([disabled]):hover {background-color: @input-bg;border-color: #faad14;}
.ant-picker-status-warning.ant-picker-focused, .ant-picker-status-warning.ant-picker:focus {border-color: #ffc53d;box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);border-right-width: 1px;} .ant-picker-status-warning.ant-picker-focused, .ant-picker-status-warning.ant-picker:focus {border-color: #ffc53d;box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);border-right-width: 1px;}
.ant-picker-status-warning.ant-picker .ant-picker-active-bar {background: #ffc53d;}
.ant-picker {color: @text-color;background: @picker-bg;border: 1px solid @border-color-base;border-radius: 2px;} .ant-picker {color: @text-color;background: @picker-bg;border: 1px solid @border-color-base;border-radius: 2px;}
.ant-picker:hover, .ant-picker-focused {border-color: color(~`colorPalette("@{primary-color}", 5)`);border-right-width: 1px;} .ant-picker:hover, .ant-picker-focused {border-color: color(~`colorPalette("@{primary-color}", 5)`);border-right-width: 1px;}
.ant-input-rtl .ant-picker:hover, .ant-input-rtl .ant-picker-focused {border-right-width: 0;border-left-width: 1px !important;} .ant-input-rtl .ant-picker:hover, .ant-input-rtl .ant-picker-focused {border-right-width: 0;border-left-width: 1px !important;}
@ -708,7 +695,7 @@ a.ant-btn-disabled:active > a:only-child::after {background: transparent;}
.ant-picker-range .ant-picker-active-bar {background: @primary-color;} .ant-picker-range .ant-picker-active-bar {background: @primary-color;}
.ant-picker-dropdown {color: @text-color;} .ant-picker-dropdown {color: @text-color;}
.ant-picker-ranges .ant-picker-preset > .ant-tag-blue {color: @primary-color;background: color(~`colorPalette("@{primary-color}", 1)`);border-color: color(~`colorPalette("@{primary-color}", 3)`);} .ant-picker-ranges .ant-picker-preset > .ant-tag-blue {color: @primary-color;background: color(~`colorPalette("@{primary-color}", 1)`);border-color: color(~`colorPalette("@{primary-color}", 3)`);}
.ant-picker-range-arrow {box-shadow: 2px 2px 6px -2px rgba(0, 0, 0, 0.1);border-radius: 0 0 2px;} .ant-picker-range-arrow {background: linear-gradient(135deg, transparent 40%, @calendar-bg 40%);box-shadow: 2px 2px 6px -2px rgba(0, 0, 0, 0.1);border-radius: 0 0 2px;}
.ant-picker-range-arrow::before {background: @calendar-bg;background-repeat: no-repeat;background-position: -10px -10px;} .ant-picker-range-arrow::before {background: @calendar-bg;background-repeat: no-repeat;background-position: -10px -10px;}
.ant-picker-panel-container {background: @calendar-bg;border-radius: 2px;box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);} .ant-picker-panel-container {background: @calendar-bg;border-radius: 2px;box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);}
.ant-picker-panel-container .ant-picker-panel {background: transparent;border-width: 0 0 1px 0;border-radius: 0;} .ant-picker-panel-container .ant-picker-panel {background: transparent;border-width: 0 0 1px 0;border-radius: 0;}
@ -814,7 +801,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-dropdown-menu-item.ant-dropdown-menu-item-danger {color: #ff4d4f;} .ant-dropdown-menu-item.ant-dropdown-menu-item-danger {color: #ff4d4f;}
.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover {color: #fff;background-color: #ff4d4f;} .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover {color: #fff;background-color: #ff4d4f;}
.ant-dropdown {color: @text-color;} .ant-dropdown {color: @text-color;}
.ant-dropdown-arrow {border-radius: 0 0 2px;} .ant-dropdown-arrow {background: linear-gradient(135deg, transparent 40%, @popover-bg 40%);border-radius: 0 0 2px;}
.ant-dropdown-arrow::before {background: @popover-bg;background-repeat: no-repeat;background-position: -10px -10px;} .ant-dropdown-arrow::before {background: @popover-bg;background-repeat: no-repeat;background-position: -10px -10px;}
.ant-dropdown-placement-top > .ant-dropdown-arrow, .ant-dropdown-placement-topLeft > .ant-dropdown-arrow, .ant-dropdown-placement-topRight > .ant-dropdown-arrow {box-shadow: 3px 3px 7px -3px rgba(0, 0, 0, 0.1);} .ant-dropdown-placement-top > .ant-dropdown-arrow, .ant-dropdown-placement-topLeft > .ant-dropdown-arrow, .ant-dropdown-placement-topRight > .ant-dropdown-arrow {box-shadow: 3px 3px 7px -3px rgba(0, 0, 0, 0.1);}
.ant-dropdown-placement-bottom > .ant-dropdown-arrow, .ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow, .ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {box-shadow: 2px 2px 5px -2px rgba(0, 0, 0, 0.1);} .ant-dropdown-placement-bottom > .ant-dropdown-arrow, .ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow, .ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {box-shadow: 2px 2px 5px -2px rgba(0, 0, 0, 0.1);}
@ -949,7 +936,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 2px 0 0 2px;} .ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 2px 0 0 2px;}
.ant-input-group > .ant-input-rtl:first-child, .ant-input-group-rtl .ant-input-group-addon:first-child {border-radius: 0 2px 2px 0;} .ant-input-group > .ant-input-rtl:first-child, .ant-input-group-rtl .ant-input-group-addon:first-child {border-radius: 0 2px 2px 0;}
.ant-input-group-rtl .ant-input-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;} .ant-input-group-rtl .ant-input-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;}
.ant-input-group-rtl .ant-input-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;} .ant-input-group-rtl .ant-input-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;}
.ant-input-group-rtl.ant-input-group > .ant-input:last-child, .ant-input-group-rtl.ant-input-group-addon:last-child {border-radius: 2px 0 0 2px;} .ant-input-group-rtl.ant-input-group > .ant-input:last-child, .ant-input-group-rtl.ant-input-group-addon:last-child {border-radius: 2px 0 0 2px;}
.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {border-radius: 2px 0 0 2px;} .ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {border-radius: 2px 0 0 2px;}
.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {border-radius: 0 2px 2px 0;} .ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {border-radius: 0 2px 2px 0;}
@ -957,10 +944,6 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {border-radius: 0 2px 2px 0;} .ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {border-radius: 0 2px 2px 0;}
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {border-left-width: 1px;border-radius: 2px 0 0 2px;} .ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {border-left-width: 1px;border-radius: 2px 0 0 2px;}
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 0 2px 2px 0;} .ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 0 2px 2px 0;}
.ant-input-group > .ant-input-rtl:first-child {border-radius: 0 2px 2px 0;}
.ant-input-group > .ant-input-rtl:last-child {border-radius: 2px 0 0 2px;}
.ant-input-group-rtl .ant-input-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;border-radius: 0 2px 2px 0;}
.ant-input-group-rtl .ant-input-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;}
.ant-input-password-icon.anticon {color: @text-color-secondary;} .ant-input-password-icon.anticon {color: @text-color-secondary;}
.ant-input-password-icon.anticon:hover {color: @input-icon-hover-color;} .ant-input-password-icon.anticon:hover {color: @input-icon-hover-color;}
.ant-input-textarea-show-count::after {color: @text-color-secondary;} .ant-input-textarea-show-count::after {color: @text-color-secondary;}
@ -1046,7 +1029,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 2px 0 0 2px;} .ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 2px 0 0 2px;}
.ant-input-number-group > .ant-input-number-rtl:first-child, .ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-radius: 0 2px 2px 0;} .ant-input-number-group > .ant-input-number-rtl:first-child, .ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-radius: 0 2px 2px 0;}
.ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;} .ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;}
.ant-input-number-group-rtl .ant-input-number-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;} .ant-input-number-group-rtl .ant-input-number-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;}
.ant-input-number-group-rtl.ant-input-number-group > .ant-input-number:last-child, .ant-input-number-group-rtl.ant-input-number-group-addon:last-child {border-radius: 2px 0 0 2px;} .ant-input-number-group-rtl.ant-input-number-group > .ant-input-number:last-child, .ant-input-number-group-rtl.ant-input-number-group-addon:last-child {border-radius: 2px 0 0 2px;}
.ant-input-number-group-rtl.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child) {border-radius: 2px 0 0 2px;} .ant-input-number-group-rtl.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child) {border-radius: 2px 0 0 2px;}
.ant-input-number-group-rtl.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child) {border-radius: 0 2px 2px 0;} .ant-input-number-group-rtl.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child) {border-radius: 0 2px 2px 0;}
@ -1054,10 +1037,6 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > *:first-child, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select:first-child > .ant-select-selector, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:first-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:first-child .ant-input {border-radius: 0 2px 2px 0;} .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > *:first-child, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select:first-child > .ant-select-selector, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:first-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:first-child .ant-input {border-radius: 0 2px 2px 0;}
.ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > *:last-child, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select:last-child > .ant-select-selector, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:last-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:last-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker-focused:last-child .ant-input {border-left-width: 1px;border-radius: 2px 0 0 2px;} .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > *:last-child, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select:last-child > .ant-select-selector, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:last-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:last-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker-focused:last-child .ant-input {border-left-width: 1px;border-radius: 2px 0 0 2px;}
.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 0 2px 2px 0;} .ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 0 2px 2px 0;}
.ant-input-number-group > .ant-input-number-rtl:first-child {border-radius: 0 2px 2px 0;}
.ant-input-number-group > .ant-input-number-rtl:last-child {border-radius: 2px 0 0 2px;}
.ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;border-radius: 0 2px 2px 0;}
.ant-input-number-group-rtl .ant-input-number-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;}
.ant-input-number-handler {color: @text-color-secondary;border-left: 1px solid @border-color-base;} .ant-input-number-handler {color: @text-color-secondary;border-left: 1px solid @border-color-base;}
.ant-input-number-handler:active {background: @input-number-handler-active-bg;} .ant-input-number-handler:active {background: @input-number-handler-active-bg;}
.ant-input-number-handler:hover .ant-input-number-handler-up-inner, .ant-input-number-handler:hover .ant-input-number-handler-down-inner {color: color(~`colorPalette("@{primary-color}", 5)`);} .ant-input-number-handler:hover .ant-input-number-handler-up-inner, .ant-input-number-handler:hover .ant-input-number-handler-down-inner {color: color(~`colorPalette("@{primary-color}", 5)`);}
@ -1149,25 +1128,10 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;} .ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;}
.ant-menu-item-danger.ant-menu-item {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item {color: #ff4d4f;}
.ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;}
<<<<<<< Updated upstream .ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{picker-date-hover-range-border-color}", 4)`);}
<<<<<<< Updated upstream
.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);}
.ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;}
.ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);} .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{picker-date-hover-range-border-color}", 4)`);}
=======
.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);}
.ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;}
.ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);}
>>>>>>> Stashed changes
=======
.ant-menu-item-danger.ant-menu-item:active {background: #fff1f0;}
.ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;}
.ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: #fff1f0;}
>>>>>>> Stashed changes
.ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {border-right-color: #ff4d4f;} .ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {border-right-color: #ff4d4f;}
.ant-menu-dark .ant-menu-item-danger.ant-menu-item, .ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {color: #ff4d4f;} .ant-menu-dark .ant-menu-item-danger.ant-menu-item, .ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {color: #ff4d4f;}
.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {color: #fff;background-color: #ff4d4f;} .ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {color: #fff;background-color: #ff4d4f;}
@ -1328,8 +1292,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-pagination-simple .ant-pagination-simple-pager input:hover {border-color: @primary-color;} .ant-pagination-simple .ant-pagination-simple-pager input:hover {border-color: @primary-color;}
.ant-pagination-simple .ant-pagination-simple-pager input:focus {border-color: color(~`colorPalette("@{primary-color}", 5)`);box-shadow: 0 0 0 2px fade(@primary-color, 20%);} .ant-pagination-simple .ant-pagination-simple-pager input:focus {border-color: color(~`colorPalette("@{primary-color}", 5)`);box-shadow: 0 0 0 2px fade(@primary-color, 20%);}
.ant-pagination-simple .ant-pagination-simple-pager input[disabled] {color: @disabled-color;background: @disabled-bg;border-color: @border-color-base;} .ant-pagination-simple .ant-pagination-simple-pager input[disabled] {color: @disabled-color;background: @disabled-bg;border-color: @border-color-base;}
.ant-pagination.ant-pagination-mini .ant-pagination-item:not(.ant-pagination-item-active) {background: transparent;border-color: transparent;} .ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active) {background: transparent;border-color: transparent;}
.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link, .ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link {background: transparent;border-color: transparent;} .ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link, .ant-pagination.mini .ant-pagination-next .ant-pagination-item-link {background: transparent;border-color: transparent;}
.ant-pagination.ant-pagination-disabled .ant-pagination-item {background: @disabled-bg;border-color: @border-color-base;} .ant-pagination.ant-pagination-disabled .ant-pagination-item {background: @disabled-bg;border-color: @border-color-base;}
.ant-pagination.ant-pagination-disabled .ant-pagination-item a {color: @disabled-color;background: transparent;border: none;} .ant-pagination.ant-pagination-disabled .ant-pagination-item a {color: @disabled-color;background: transparent;border: none;}
.ant-pagination.ant-pagination-disabled .ant-pagination-item-active {background: @pagination-item-disabled-bg-active;} .ant-pagination.ant-pagination-disabled .ant-pagination-item-active {background: @pagination-item-disabled-bg-active;}
@ -1345,8 +1309,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-popover-message {color: @text-color;} .ant-popover-message {color: @text-color;}
.ant-popover-message > .anticon {color: #faad14;} .ant-popover-message > .anticon {color: #faad14;}
.ant-popover-arrow {background: transparent;} .ant-popover-arrow {background: transparent;}
.ant-popover-arrow-content {--antd-arrow-background-color: @popover-bg;border-radius: 0 0 2px;} .ant-popover-arrow-content {background-color: @popover-bg;border-radius: 0 0 2px;}
.ant-popover-arrow-content::before {background: var(--antd-arrow-background-color);background-repeat: no-repeat;background-position: -10px -10px;} .ant-popover-arrow-content::before {background: @popover-bg;background-repeat: no-repeat;background-position: -10px -10px;}
.ant-popover-placement-top .ant-popover-arrow-content, .ant-popover-placement-topLeft .ant-popover-arrow-content, .ant-popover-placement-topRight .ant-popover-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);} .ant-popover-placement-top .ant-popover-arrow-content, .ant-popover-placement-topLeft .ant-popover-arrow-content, .ant-popover-placement-topRight .ant-popover-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);}
.ant-popover-placement-right .ant-popover-arrow-content, .ant-popover-placement-rightTop .ant-popover-arrow-content, .ant-popover-placement-rightBottom .ant-popover-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);} .ant-popover-placement-right .ant-popover-arrow-content, .ant-popover-placement-rightTop .ant-popover-arrow-content, .ant-popover-placement-rightBottom .ant-popover-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);}
.ant-popover-placement-bottom .ant-popover-arrow-content, .ant-popover-placement-bottomLeft .ant-popover-arrow-content, .ant-popover-placement-bottomRight .ant-popover-arrow-content {box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.06);} .ant-popover-placement-bottom .ant-popover-arrow-content, .ant-popover-placement-bottomLeft .ant-popover-arrow-content, .ant-popover-placement-bottomRight .ant-popover-arrow-content {box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.06);}
@ -1402,13 +1366,12 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-radio-wrapper {color: @text-color;} .ant-radio-wrapper {color: @text-color;}
.ant-radio {color: @text-color;} .ant-radio {color: @text-color;}
.ant-radio-wrapper:hover .ant-radio, .ant-radio:hover .ant-radio-inner, .ant-radio-input:focus + .ant-radio-inner {border-color: @primary-color;} .ant-radio-wrapper:hover .ant-radio, .ant-radio:hover .ant-radio-inner, .ant-radio-input:focus + .ant-radio-inner {border-color: @primary-color;}
.ant-radio-input:focus + .ant-radio-inner {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} .ant-radio-input:focus + .ant-radio-inner {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);}
.ant-radio-checked::after {border: 1px solid @primary-color;border-radius: 50%;animation-fill-mode: both;} .ant-radio-checked::after {border: 1px solid @primary-color;border-radius: 50%;animation-fill-mode: both;}
.ant-radio-inner {background-color: @btn-default-bg;border-color: @border-color-base;border-style: solid;border-width: 1px;border-radius: 50%;} .ant-radio-inner {background-color: @btn-default-bg;border-color: @border-color-base;border-style: solid;border-width: 1px;border-radius: 50%;}
.ant-radio-inner::after {background-color: @primary-color;border-top: 0;border-left: 0;border-radius: 16px;} .ant-radio-inner::after {background-color: @primary-color;border-top: 0;border-left: 0;border-radius: 16px;}
.ant-radio.ant-radio-disabled .ant-radio-inner {border-color: @border-color-base;}
.ant-radio-checked .ant-radio-inner {border-color: @primary-color;} .ant-radio-checked .ant-radio-inner {border-color: @primary-color;}
.ant-radio-disabled .ant-radio-inner {background-color: @disabled-bg;} .ant-radio-disabled .ant-radio-inner {background-color: @disabled-bg;border-color: @border-color-base !important;}
.ant-radio-disabled .ant-radio-inner::after {background-color: @radio-dot-disabled-color;} .ant-radio-disabled .ant-radio-inner::after {background-color: @radio-dot-disabled-color;}
.ant-radio-disabled + span {color: @disabled-color;} .ant-radio-disabled + span {color: @disabled-color;}
.ant-radio-button-wrapper {color: @text-color;background: @btn-default-bg;border: 1px solid @border-color-base;border-top-width: 1.02px;border-left-width: 0;} .ant-radio-button-wrapper {color: @text-color;background: @btn-default-bg;border: 1px solid @border-color-base;border-top-width: 1.02px;border-left-width: 0;}
@ -1418,7 +1381,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-radio-button-wrapper:last-child {border-radius: 0 2px 2px 0;} .ant-radio-button-wrapper:last-child {border-radius: 0 2px 2px 0;}
.ant-radio-button-wrapper:first-child:last-child {border-radius: 2px;} .ant-radio-button-wrapper:first-child:last-child {border-radius: 2px;}
.ant-radio-button-wrapper:hover {color: @primary-color;} .ant-radio-button-wrapper:hover {color: @primary-color;}
.ant-radio-button-wrapper:focus-within {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} .ant-radio-button-wrapper:focus-within {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {color: @primary-color;background: @btn-default-bg;border-color: @primary-color;} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {color: @primary-color;background: @btn-default-bg;border-color: @primary-color;}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {background-color: @primary-color;} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {background-color: @primary-color;}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {border-color: @primary-color;} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {border-color: @primary-color;}
@ -1426,11 +1389,11 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before {background-color: color(~`colorPalette("@{primary-color}", 5)`);} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before {background-color: color(~`colorPalette("@{primary-color}", 5)`);}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {color: color(~`colorPalette("@{primary-color}", 7)`);border-color: color(~`colorPalette("@{primary-color}", 7)`);} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {color: color(~`colorPalette("@{primary-color}", 7)`);border-color: color(~`colorPalette("@{primary-color}", 7)`);}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active::before {background-color: color(~`colorPalette("@{primary-color}", 7)`);} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active::before {background-color: color(~`colorPalette("@{primary-color}", 7)`);}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);}
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {color: @radio-solid-checked-color;background: @primary-color;border-color: @primary-color;} .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {color: @radio-solid-checked-color;background: @primary-color;border-color: @primary-color;}
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {color: @radio-solid-checked-color;background: color(~`colorPalette("@{primary-color}", 5)`);border-color: color(~`colorPalette("@{primary-color}", 5)`);} .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {color: @radio-solid-checked-color;background: color(~`colorPalette("@{primary-color}", 5)`);border-color: color(~`colorPalette("@{primary-color}", 5)`);}
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {color: @radio-solid-checked-color;background: color(~`colorPalette("@{primary-color}", 7)`);border-color: color(~`colorPalette("@{primary-color}", 7)`);} .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {color: @radio-solid-checked-color;background: color(~`colorPalette("@{primary-color}", 7)`);border-color: color(~`colorPalette("@{primary-color}", 7)`);}
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);}
.ant-radio-button-wrapper-disabled {color: @disabled-color;background-color: @disabled-bg;border-color: @border-color-base;} .ant-radio-button-wrapper-disabled {color: @disabled-color;background-color: @disabled-bg;border-color: @border-color-base;}
.ant-radio-button-wrapper-disabled:first-child, .ant-radio-button-wrapper-disabled:hover {color: @disabled-color;background-color: @disabled-bg;border-color: @border-color-base;} .ant-radio-button-wrapper-disabled:first-child, .ant-radio-button-wrapper-disabled:hover {color: @disabled-color;background-color: @disabled-bg;border-color: @border-color-base;}
.ant-radio-button-wrapper-disabled:first-child {border-left-color: @border-color-base;} .ant-radio-button-wrapper-disabled:first-child {border-left-color: @border-color-base;}
@ -1497,11 +1460,14 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle {border-radius: 50%;} .ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle {border-radius: 50%;}
.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {border-radius: 50%;} .ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {border-radius: 50%;}
.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {border-radius: 50%;} .ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {border-radius: 50%;}
.ant-skeleton-content .ant-skeleton-title {background: @skeleton-color;border-radius: 2px;} .ant-skeleton-content .ant-skeleton-title {background: @skeleton-color;border-radius: 4px;}
.ant-skeleton-content .ant-skeleton-paragraph > li {background: @skeleton-color;border-radius: 2px;} .ant-skeleton-content .ant-skeleton-paragraph > li {background: @skeleton-color;border-radius: 4px;}
.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title, .ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph > li {border-radius: 100px;} .ant-skeleton-round .ant-skeleton-content .ant-skeleton-title, .ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph > li {border-radius: 100px;}
.ant-skeleton-active .ant-skeleton-title, .ant-skeleton-active .ant-skeleton-paragraph > li, .ant-skeleton-active .ant-skeleton-avatar, .ant-skeleton-active .ant-skeleton-button, .ant-skeleton-active .ant-skeleton-input, .ant-skeleton-active .ant-skeleton-image {background: transparent;} .ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title, .ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;}
.ant-skeleton-active .ant-skeleton-title::after, .ant-skeleton-active .ant-skeleton-paragraph > li::after, .ant-skeleton-active .ant-skeleton-avatar::after, .ant-skeleton-active .ant-skeleton-button::after, .ant-skeleton-active .ant-skeleton-input::after, .ant-skeleton-active .ant-skeleton-image::after {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);} .ant-skeleton.ant-skeleton-active .ant-skeleton-avatar {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;}
.ant-skeleton.ant-skeleton-active .ant-skeleton-button {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;}
.ant-skeleton.ant-skeleton-active .ant-skeleton-input {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;}
.ant-skeleton.ant-skeleton-active .ant-skeleton-image {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;}
.ant-skeleton-element .ant-skeleton-button {background: @skeleton-color;border-radius: 2px;} .ant-skeleton-element .ant-skeleton-button {background: @skeleton-color;border-radius: 2px;}
.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle {border-radius: 50%;} .ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle {border-radius: 50%;}
.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round {border-radius: 32px;} .ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round {border-radius: 32px;}
@ -1618,7 +1584,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-expanded-row > td, .ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-placeholder > td {border-right: 0;} .ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-expanded-row > td, .ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-placeholder > td {border-right: 0;}
.ant-table.ant-table-bordered > .ant-table-footer {border: 1px solid @border-color-split;border-top: 0;} .ant-table.ant-table-bordered > .ant-table-footer {border: 1px solid @border-color-split;border-top: 0;}
.ant-table-cell .ant-table-container:first-child {border-top: 0;} .ant-table-cell .ant-table-container:first-child {border-top: 0;}
.ant-table-cell-scrollbar:not([rowspan]) {box-shadow: 0 1px 0 1px @table-header-bg;} .ant-table-cell-scrollbar {box-shadow: 0 1px 0 1px @table-header-bg;}
.ant-table {color: @text-color;background: @component-background;border-radius: 2px;} .ant-table {color: @text-color;background: @component-background;border-radius: 2px;}
.ant-table table {border-radius: 2px 2px 0 0;border-collapse: separate;border-spacing: 0;} .ant-table table {border-radius: 2px 2px 0 0;border-collapse: separate;border-spacing: 0;}
.ant-table-footer {color: @heading-color;background: @background-color-light;} .ant-table-footer {color: @heading-color;background: @background-color-light;}
@ -1669,10 +1635,10 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-table-empty .ant-table-tbody > tr.ant-table-placeholder {color: @disabled-color;} .ant-table-empty .ant-table-tbody > tr.ant-table-placeholder {color: @disabled-color;}
.ant-table-tbody > tr.ant-table-placeholder:hover > td {background: @component-background;} .ant-table-tbody > tr.ant-table-placeholder:hover > td {background: @component-background;}
.ant-table-cell-fix-left, .ant-table-cell-fix-right {background: @component-background;} .ant-table-cell-fix-left, .ant-table-cell-fix-right {background: @component-background;}
.ant-table-ping-left:not(.ant-table-has-fix-left) > .ant-table-container::before {box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before {box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);}
.ant-table-ping-left .ant-table-cell-fix-left-first::after, .ant-table-ping-left .ant-table-cell-fix-left-last::after {box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-ping-left .ant-table-cell-fix-left-first::after, .ant-table-ping-left .ant-table-cell-fix-left-last::after {box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);}
.ant-table-ping-left .ant-table-cell-fix-left-last::before {background-color: transparent !important;} .ant-table-ping-left .ant-table-cell-fix-left-last::before {background-color: transparent !important;}
.ant-table-ping-right:not(.ant-table-has-fix-right) > .ant-table-container::after {box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after {box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);}
.ant-table-ping-right .ant-table-cell-fix-right-first::after, .ant-table-ping-right .ant-table-cell-fix-right-last::after {box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-ping-right .ant-table-cell-fix-right-first::after, .ant-table-ping-right .ant-table-cell-fix-right-last::after {box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);}
.ant-table-sticky-holder {background: @component-background;} .ant-table-sticky-holder {background: @component-background;}
.ant-table-sticky-scroll {background: lighten(@table-border-color, 80%);border-top: 1px solid @border-color-split;} .ant-table-sticky-scroll {background: lighten(@table-border-color, 80%);border-top: 1px solid @border-color-split;}
@ -1681,7 +1647,6 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-table-sticky-scroll-bar-active {background-color: fade(@table-sticky-scroll-bar-bg, 80%);} .ant-table-sticky-scroll-bar-active {background-color: fade(@table-sticky-scroll-bar-bg, 80%);}
.ant-table-title {border-radius: 2px 2px 0 0;} .ant-table-title {border-radius: 2px 2px 0 0;}
.ant-table-title + .ant-table-container {border-top-left-radius: 0;border-top-right-radius: 0;} .ant-table-title + .ant-table-container {border-top-left-radius: 0;border-top-right-radius: 0;}
.ant-table-title + .ant-table-container table {border-radius: 0;}
.ant-table-title + .ant-table-container table > thead > tr:first-child th:first-child {border-radius: 0;} .ant-table-title + .ant-table-container table > thead > tr:first-child th:first-child {border-radius: 0;}
.ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {border-radius: 0;} .ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {border-radius: 0;}
.ant-table-container {border-top-left-radius: 2px;border-top-right-radius: 2px;} .ant-table-container {border-top-left-radius: 2px;border-top-right-radius: 2px;}
@ -1737,78 +1702,31 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;} .ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;}
.ant-tag-checkable-checked {background-color: @primary-color;} .ant-tag-checkable-checked {background-color: @primary-color;}
.ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);} .ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);}
<<<<<<< Updated upstream
<<<<<<< Updated upstream
.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;}
=======
>>>>>>> Stashed changes
=======
>>>>>>> Stashed changes
.ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} .ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;}
.ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} .ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;} .ant-tag-magenta {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;}
.ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} .ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
<<<<<<< Updated upstream .ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{picker-date-hover-range-border-color}", 4)`);border-color: #ffa39e;}
.ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;}
<<<<<<< Updated upstream
.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{success-color-deprecated-bg}", 1)`);border-color: #ffadd2;}
.ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{success-color-deprecated-bg}", 1)`);border-color: #ffadd2;}
.ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);border-color: #ffa39e;}
=======
.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);border-color: #ffa39e;}
>>>>>>> Stashed changes
=======
>>>>>>> Stashed changes
.ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;} .ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;}
.ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;} .ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;}
.ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;} .ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;}
.ant-tag-orange {color: #d46b08;background: color(~`colorPalette("@{alert-warning-border-color}", 1)`);border-color: #ffd591;} .ant-tag-orange {color: #d46b08;background: #fff7e6;border-color: #ffd591;}
.ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;} .ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;}
.ant-tag-yellow {color: #d4b106;background: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);border-color: #fffb8f;} .ant-tag-yellow {color: #d4b106;background: #feffe6;border-color: #fffb8f;}
.ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;} .ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;}
.ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;} .ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;}
.ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;} .ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;}
.ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;} .ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;}
.ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;} .ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;}
.ant-tag-lime {color: #7cb305;background: color(~`colorPalette("@{text-color-secondary}", 1)`);border-color: #eaff8f;} .ant-tag-lime {color: #7cb305;background: #fcffe6;border-color: #eaff8f;}
.ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;} .ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;}
.ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;} .ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;}
.ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;} .ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;}
<<<<<<< Updated upstream
<<<<<<< Updated upstream
.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;} .ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;}
.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} .ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;}
.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{btn-primary-bg}", 1)`);border-color: #adc6ff;} .ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{calendar-input-bg}", 2)`);border-color: #adc6ff;}
.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: color(~`colorPalette("@{alert-info-border-color}", 5)`);}
.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;}
.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{tree-bg}", 1)`);border-color: #adc6ff;}
.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} .ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;}
.ant-tag-purple {color: #531dab;background: #f9f0ff;border-color: #d3adf7;} .ant-tag-purple {color: #531dab;background: #f9f0ff;border-color: #d3adf7;}
=======
.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;}
.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;}
.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{dropdown-menu-submenu-disabled-bg}", 3)`);border-color: #adc6ff;}
.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;}
.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{alert-error-bg-color}", 1)`);border-color: #d3adf7;}
>>>>>>> Stashed changes
=======
.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;}
.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;}
.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{info-color-deprecated-bg}", 1)`);border-color: #adc6ff;}
.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;}
.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{background-color-light}", 1)`);border-color: #d3adf7;}
>>>>>>> Stashed changes
.ant-tag-purple-inverse {color: #fff;background: #722ed1;border-color: #722ed1;} .ant-tag-purple-inverse {color: #fff;background: #722ed1;border-color: #722ed1;}
.ant-tag-success {color: #52c41a;background: @success-color-deprecated-bg;border-color: @success-color-deprecated-border;} .ant-tag-success {color: #52c41a;background: @success-color-deprecated-bg;border-color: @success-color-deprecated-border;}
.ant-tag-processing {color: @primary-color;background: @info-color-deprecated-bg;border-color: @info-color-deprecated-border;} .ant-tag-processing {color: @primary-color;background: @info-color-deprecated-bg;border-color: @info-color-deprecated-border;}
@ -1831,7 +1749,7 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-tooltip {color: @text-color;} .ant-tooltip {color: @text-color;}
.ant-tooltip-inner {color: #fff;background-color: @tooltip-bg;border-radius: 2px;box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);} .ant-tooltip-inner {color: #fff;background-color: @tooltip-bg;border-radius: 2px;box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);}
.ant-tooltip-arrow {background: transparent;} .ant-tooltip-arrow {background: transparent;}
.ant-tooltip-arrow-content {--antd-arrow-background-color: linear-gradient(to right bottom, fadeout(@tooltip-bg, 10%), @tooltip-bg);border-radius: 0 0 2px;} .ant-tooltip-arrow-content {--antd-arrow-background-color: linear-gradient(to right bottom, fadeout(@tooltip-bg, 10%), @tooltip-bg);background-color: transparent;border-radius: 0 0 2px;}
.ant-tooltip-arrow-content::before {background: var(--antd-arrow-background-color);background-repeat: no-repeat;background-position: -10px -10px;} .ant-tooltip-arrow-content::before {background: var(--antd-arrow-background-color);background-repeat: no-repeat;background-position: -10px -10px;}
.ant-tooltip-placement-top .ant-tooltip-arrow-content, .ant-tooltip-placement-topLeft .ant-tooltip-arrow-content, .ant-tooltip-placement-topRight .ant-tooltip-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);} .ant-tooltip-placement-top .ant-tooltip-arrow-content, .ant-tooltip-placement-topLeft .ant-tooltip-arrow-content, .ant-tooltip-placement-topRight .ant-tooltip-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);}
.ant-tooltip-placement-right .ant-tooltip-arrow-content, .ant-tooltip-placement-rightTop .ant-tooltip-arrow-content, .ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);} .ant-tooltip-placement-right .ant-tooltip-arrow-content, .ant-tooltip-placement-rightTop .ant-tooltip-arrow-content, .ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);}
@ -2021,7 +1939,6 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography
.ant-typography pre code {background: transparent;border: 0;} .ant-typography pre code {background: transparent;border: 0;}
.ant-typography blockquote {border-left: 4px solid rgba(100, 100, 100, 0.2);} .ant-typography blockquote {border-left: 4px solid rgba(100, 100, 100, 0.2);}
.ant-upload {color: @text-color;} .ant-upload {color: @text-color;}
.ant-upload.ant-upload-disabled {color: @disabled-color;}
.ant-upload.ant-upload-select-picture-card {background-color: @background-color-light;border: 1px dashed @border-color-base;border-radius: 2px;} .ant-upload.ant-upload-select-picture-card {background-color: @background-color-light;border: 1px dashed @border-color-base;border-radius: 2px;}
.ant-upload.ant-upload-select-picture-card:hover {border-color: @primary-color;} .ant-upload.ant-upload-select-picture-card:hover {border-color: @primary-color;}
.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover {border-color: @border-color-base;} .ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover {border-color: @border-color-base;}
@ -2046,22 +1963,13 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography
.ant-upload-list-picture .ant-upload-list-item-error, .ant-upload-list-picture-card .ant-upload-list-item-error {border-color: #ff4d4f;} .ant-upload-list-picture .ant-upload-list-item-error, .ant-upload-list-picture-card .ant-upload-list-item-error {border-color: #ff4d4f;}
.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, .ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {background: transparent;} .ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, .ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {background: transparent;}
.ant-upload-list-picture .ant-upload-list-item-uploading, .ant-upload-list-picture-card .ant-upload-list-item-uploading {border-style: dashed;} .ant-upload-list-picture .ant-upload-list-item-uploading, .ant-upload-list-picture-card .ant-upload-list-item-uploading {border-style: dashed;}
<<<<<<< Updated upstream
<<<<<<< Updated upstream
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;}
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;}
=======
=======
>>>>>>> Stashed changes
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;} .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;}
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {fill: #ff4d4f;} .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {fill: #ff4d4f;}
.ant-upload-list-picture-card .ant-upload-list-item-info::before {background-color: rgba(0, 0, 0, 0.5);} .ant-upload-list-picture-card .ant-upload-list-item-info::before {background-color: rgba(0, 0, 0, 0.5);}
.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {color: rgba(255, 255, 255, 0.85);} .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {color: rgba(255, 255, 255, 0.85);}
.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {color: #fff;} .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {color: #fff;}
.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {background-color: @background-color-light;} .ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {background-color: @background-color-light;}
.ant-upload-list .ant-upload-animate-inline-appear, .ant-upload-list .ant-upload-animate-inline-enter, .ant-upload-list .ant-upload-animate-inline-leave {animation-fill-mode: cubic-bezier(0.78, 0.14, 0.15, 0.86);}
.ant-pro-table-search {background-color: @component-background !important;} .ant-pro-table-search {background-color: @component-background !important;}
.bezierEasingMixin() { .bezierEasingMixin() {
@functions: ~`(function() {var NEWTON_ITERATIONS = 4;var NEWTON_MIN_SLOPE = 0.001;var SUBDIVISION_PRECISION = 0.0000001;var SUBDIVISION_MAX_ITERATIONS = 10;var kSplineTableSize = 11;var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);var float32ArraySupported = typeof Float32Array === 'function';function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } @functions: ~`(function() {var NEWTON_ITERATIONS = 4;var NEWTON_MIN_SLOPE = 0.001;var SUBDIVISION_PRECISION = 0.0000001;var SUBDIVISION_MAX_ITERATIONS = 10;var kSplineTableSize = 11;var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);var float32ArraySupported = typeof Float32Array === 'function';function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }
@ -2511,8 +2419,7 @@ this.tinycolor = tinycolor;})()`;}
.colorPaletteMixin() { .colorPaletteMixin() {
@functions: ~`(function() {var hueStep = 2;var saturationStep = 0.16;var saturationStep2 = 0.05;var brightnessStep1 = 0.05;var brightnessStep2 = 0.15;var lightColorCount = 5;var darkColorCount = 4;var getHue = function(hsv, i, isLight) {var hue;if (hsv.h >= 60 && hsv.h <= 240) {hue = isLight ? hsv.h - hueStep * i : hsv.h + hueStep * i;} else {hue = isLight ? hsv.h + hueStep * i : hsv.h - hueStep * i;} @functions: ~`(function() {var hueStep = 2;var saturationStep = 0.16;var saturationStep2 = 0.05;var brightnessStep1 = 0.05;var brightnessStep2 = 0.15;var lightColorCount = 5;var darkColorCount = 4;var getHue = function(hsv, i, isLight) {var hue;if (hsv.h >= 60 && hsv.h <= 240) {hue = isLight ? hsv.h - hueStep * i : hsv.h + hueStep * i;} else {hue = isLight ? hsv.h + hueStep * i : hsv.h - hueStep * i;}
if (hue < 0) {hue += 360;} else if (hue >= 360) {hue -= 360;} if (hue < 0) {hue += 360;} else if (hue >= 360) {hue -= 360;}
return Math.round(hue);};var getSaturation = function(hsv, i, isLight) {if (hsv.h === 0 && hsv.s === 0) {return hsv.s;} return Math.round(hue);};var getSaturation = function(hsv, i, isLight) {var saturation;if (isLight) {saturation = hsv.s - saturationStep * i;} else if (i === darkColorCount) {saturation = hsv.s + saturationStep;} else {saturation = hsv.s + saturationStep2 * i;}
var saturation;if (isLight) {saturation = hsv.s - saturationStep * i;} else if (i === darkColorCount) {saturation = hsv.s + saturationStep;} else {saturation = hsv.s + saturationStep2 * i;}
if (saturation > 1) {saturation = 1;} if (saturation > 1) {saturation = 1;}
if (isLight && i === lightColorCount && saturation > 0.1) {saturation = 0.1;} if (isLight && i === lightColorCount && saturation > 0.1) {saturation = 0.1;}
if (saturation < 0.06) {saturation = 0.06;} if (saturation < 0.06) {saturation = 0.06;}
@ -2969,7 +2876,7 @@ this.tinycolor = tinycolor;})()`;}
@cascader-dropdown-line-height: @dropdown-line-height; @cascader-dropdown-line-height: @dropdown-line-height;
@anchor-bg: transparent; @anchor-bg: transparent;
@anchor-border-color: @border-color-split; @anchor-border-color: @border-color-split;
@anchor-link-top: 4px; @anchor-link-top: 7px;
@anchor-link-left: 16px; @anchor-link-left: 16px;
@anchor-link-padding: @anchor-link-top 0 @anchor-link-top @anchor-link-left; @anchor-link-padding: @anchor-link-top 0 @anchor-link-top @anchor-link-left;
@tooltip-max-width: 250px; @tooltip-max-width: 250px;
@ -2994,7 +2901,7 @@ this.tinycolor = tinycolor;})()`;}
@modal-header-border-style: @border-style-base; @modal-header-border-style: @border-style-base;
@modal-header-title-line-height: 22px; @modal-header-title-line-height: 22px;
@modal-header-title-font-size: @font-size-lg; @modal-header-title-font-size: @font-size-lg;
@modal-header-close-size: @modal-header-title-line-height + 2 * @modal-header-padding-vertical; @modal-header-close-size: 56px;
@modal-heading-color: @heading-color; @modal-heading-color: @heading-color;
@modal-close-color: @text-color-secondary; @modal-close-color: @text-color-secondary;
@modal-footer-bg: transparent; @modal-footer-bg: transparent;
@ -3005,7 +2912,6 @@ this.tinycolor = tinycolor;})()`;}
@modal-mask-bg: fade(@black, 45%); @modal-mask-bg: fade(@black, 45%);
@modal-confirm-body-padding: 32px 32px 24px; @modal-confirm-body-padding: 32px 32px 24px;
@modal-confirm-title-font-size: @font-size-lg; @modal-confirm-title-font-size: @font-size-lg;
@modal-border-radius: @border-radius-base;
@progress-default-color: @processing-color; @progress-default-color: @processing-color;
@progress-remaining-color: @background-color-base; @progress-remaining-color: @background-color-base;
@progress-info-text-color: @progress-text-color; @progress-info-text-color: @progress-text-color;

89
web/client/src/sections/fillion/actions/file.js

@ -0,0 +1,89 @@
import { basicAction } from '@peace/utils'
import { ApiTable } from '$utils'
export function createFileDir(query) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
actionType: 'CREATE_FILE_DIR',
url: ApiTable.createFileDir,
query,
msg: { error: '创建文件夹失败' },
// reducer: { name: 'uploadFile' }
});
}
export function delFileDir(query) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
actionType: 'DEL_FILE_DIR',
url: ApiTable.delFileDir,
query,
msg: { error: '删除文件夹失败' },
// reducer: { name: 'uploadFile' }
});
}
export function queryFileDir(query) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
actionType: 'QUERY_FILE_DIR',
url: ApiTable.queryFileDIr,
query,
msg: { error: '查询文件夹失败' },
reducer: { name: 'fileDirs' }
});
}
export function updateFileDir(query) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
actionType: 'UPDATE_FILE_DIR',
url: ApiTable.updateFileDir,
query,
msg: { error: '更新文件夹名称失败' },
// reducer: { name: 'fileDirs' }
});
}
// query : {typeId, userId, userName, startDate, endDate, fileSize, fileName, fileUrl, fileExt}
export function uploadFile(query) {
return dispatch => basicAction({
type: 'post',
dispatch: dispatch,
actionType: 'UPLOAD_FILE',
url: ApiTable.uploadFile,
query,
msg: { error: '上传文件失败' },
reducer: { name: 'uploadFile' }
});
}
export function deleteFile(id) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
actionType: 'DELETE_FILE',
url: ApiTable.deleteFile,
msg: { error: '删除文件数据失败' },
query: { id },
reducer: { name: 'fileDel' }
});
}
export function getFileList(query) { // fId, limit, offset, searchTxt
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
actionType: 'GET_FILE_LIST',
url: ApiTable.getFileList,
query,
msg: { error: '获取档案数据失败' },
reducer: { name: 'fileList' }
});
}

2
web/client/src/sections/fillion/actions/index.js

@ -2,7 +2,9 @@
import * as infor from './infor' import * as infor from './infor'
import * as patrol from './patrol' import * as patrol from './patrol'
import * as file from './file'
export default { export default {
...infor, ...infor,
...patrol, ...patrol,
...file,
} }

2
web/client/src/sections/fillion/actions/infor.js

@ -97,7 +97,7 @@ export function getRoadway(query) {
actionType: 'GET_ROADWAY', actionType: 'GET_ROADWAY',
url: ApiTable.getRoadway, url: ApiTable.getRoadway,
msg: { error: '获取道路信息失败' }, msg: { error: '获取道路信息失败' },
// reducer: { name: 'reportstatistic' } // reducer: { name: 'roads' }
}); });
} }
export function putRoadway(query) { export function putRoadway(query) {

73
web/client/src/sections/fillion/components/file/roadModal.js

@ -0,0 +1,73 @@
import React, { useState, useEffect } from 'react'
import PropTypes from 'prop-types';
import { Modal, Input, Row, Col } from 'antd';
const { Search } = Input;
const RoadModal = props => {
const { isVisible, onSubmit, onCancel, roads } = props;
const [roadName, setRoadName] = useState('');
const [isRepeated, setIsRepeated] = useState(true);
let timer = null;
useEffect(() => {
if (timer)
clearTimeout(timer)
else {
timer = setTimeout(() => {
if (roads.some(item => item.roadName == roadName)) {
setIsRepeated(true)
} else {
setIsRepeated(false);
}
}, 500);
}
}, [roadName]);
useEffect(() => {
if (!isVisible) {
setRoadName('')
setIsRepeated(false)
}
return () => {
setRoadName('')
}
}, [isVisible])
const onInputText = (e) => {
const value = e.target.value;
setRoadName(value);
}
const onConfirm = () => {
if (!isRepeated)
if (roadName && roadName.trim() != '') {
onSubmit(roadName)
}
}
return (
<Modal title="添加道路" visible={isVisible} onOk={onConfirm} onCancel={onCancel} >
<Row type="flex" style={{ alignContent: 'center' }}>
<Col span={6}>
<span style={{ color: 'gray', lineHeight: "32px" }}>请输入道路名称:</span>
</Col>
<Col span={18}>
<Search placeholder='请输入道路名称' onChange={onInputText} value={roadName} />
</Col>
<Row>
{
isRepeated ? <span style={{ color: 'red' }}>道路名称重复</span>
: ''
}
</Row>
</Row>
</Modal>
)
}
RoadModal.propTypes = {}
export default RoadModal

45
web/client/src/sections/fillion/components/file/uploadModal.js

@ -0,0 +1,45 @@
import React, { useState, useEffect } from 'react'
import { Modal, Input, Row, Col } from 'antd';
import Upload from '../../../../components/Upload';
const UploadModal = props => {
const { isVisible, onSubmit, onCancel, } = props;
const [files, setFiles] = useState()
useEffect(() => {
if (!isVisible) {
}
return () => {
}
}, [isVisible])
const onConfirm = () => {
onSubmit(files);
}
const onFileUploaded = (fileList) => {
console.log('fileList: ', fileList);
setFiles(fileList);
}
return (
<Modal title="文件上传" visible={isVisible} onOk={onConfirm} onCancel={onCancel} >
<Row type="flex" style={{ alignContent: 'center' }}>
<Upload
uploadType={'project'}
maxFilesNum={1}
maxFileSize={10}
onChange={onFileUploaded}
// value
// onStateChange
/>
</Row>
</Modal>
)
}
UploadModal.propTypes = {}
export default UploadModal

356
web/client/src/sections/fillion/components/fileTable.js

@ -0,0 +1,356 @@
import { connect } from 'react-redux';
import './protable.less'
import { Card, Button, Popconfirm, Badge, Col, Row, DatePicker, Input, Modal, Spin, Image, message, Popover } from 'antd';
import ProTable from '@ant-design/pro-table';
import { getFileList, createFileDir, queryFileDir } from '../actions/file';
import React, { useEffect, useState } from 'react';
import { httpDel } from '@peace/utils'
import { PinyinHelper } from '@peace/utils';
import RoadModal from './file/roadModal';
// @ts-ignore
import UploadModal from './file/uploadModal';
const DetailList = (props) => {
const { fileList, loading, dispatch, handleOpen, handelRefresh, onPageChange } = props;
const [visible, setVisible] = useState(false)
const [selectRecord, setSelectRecord] = useState();
const checkDetail = (record) => {
// dispatch(getReportDetail(record.id))
}
const handleRemove = (record) => {
let url = 'report/{reportId}';
const actionType = "DEL_REPORT_RECORD";
const msg = {}
if (record) {
url = url.replace('{reportId}', record.id)
httpDel(dispatch, { url, actionType, msg }).then(res => {
if (res.success) {
message.success("文件删除成功");
handelRefresh()
} else {
message.error("文件删除失败")
}
})
}
}
const columns = [
{
title: '资料名称',
key: 'fileName',
dataIndex: 'fileName',
align: 'center',
}, {
title: '所属道路',
key: 'road',
dataIndex: 'road',
align: 'center',
render: (text, record) => {
return '';
}
}, {
title: '资料类型',
key: 'address',
dataIndex: 'address',
align: 'center',
render: (text, record) => {
return '';
}
},
{
title: '文件类型',
key: 'fileExt',
dataIndex: 'fileExt',
align: 'center'
},
{
title: '文件大小',
width: 100,
key: 'fileSize',
dataIndex: 'fileSize',
align: 'center',
render: (text, record) => {
let size = 0;
if (record.fileSize < 1024 * 1024) {
size = (record.fileSize / 1024).toFixed(2) + 'KB'
} else {
size = (record.fileSize / 1024 / 1024).toFixed(2) + 'MB'
}
return <span>{size}</span>
}
}, {
title: '创建时间',
key: 'createDate',
dataIndex: 'createDate',
valueType: 'dateTime',
align: 'center'
}, {
title: '操作',
width: 200,
key: 'option',
valueType: 'option',
align: 'center',
render: (text, record) => {
return [
<Button
onClick={() => { checkDetail(record); handleOpen(); }}
style={{ marginRight: 10 }}>查看</Button>,
<Popover
content={[
<div style={{ width: '100%', height: 30 }}>
<Button onClick={() => setVisible(false)} style={{ float: "right" }} ></Button>
<Button type="primary" onClick={() => handleRemove(record)} style={{ marginRight: 8, float: "right" }} ></Button>
</div>
]}
visible={selectRecord == record.id && visible}
trigger="click"
onClick={() => setSelectRecord(record.id)}
title="是否删除该记录?"
onVisibleChange={(newVisible) => setVisible(newVisible)}
>
<Button>删除</Button>
</Popover>
]
}
},
];
return (
<ProTable
columns={columns}
dataSource={fileList?.list || []}
loading={loading}
pagination={{
total: fileList?.count || 0,
pageSize: 10,
defaultPageSize: 10,
showSizeChanger: false,
onChange: (page, pageSize) => {
onPageChange(page, pageSize)
}
}}
rowKey="key"
toolBarRender={false}
search={false}
/>
);
};
const RoadNameList = (props) => {
const [filterRoad, setFilterRoad] = useState([]);
const [addVisible, setAddVisible] = useState(false);
const [selectRoad, setSelectRoad] = useState();
const { onChange, record, roads, loading, queryData, dispatch } = props;
const columns = [
{
title: '道路名称',
key: 'roadName',
dataIndex: 'roadName',
align: 'center',
},
];
useEffect(() => {
if (roads) {
setFilterRoad(roads)
}
}, [roads])
var timer = null;
const doRoadNameSearch = (e) => {
const name = e.target.value;
if (timer) {
clearTimeout(timer)
} else {
setTimeout(() => {
let _roads = roads.filter(road => PinyinHelper.isSearchMatched(road.roadName, name));
setFilterRoad(_roads);
}, 500);
}
}
const createRoadDir = (roadName) => {
dispatch(createFileDir({ roadName })).then(res => {
if (res.type == 'CREATE_FILE_DIR_SUCCESS') {
setAddVisible(false)
message.success('新增道路文件夹成功');
dispatch(queryFileDir())
}
});
}
return (
<div className='spilce'>
<ProTable
columns={columns}
dataSource={filterRoad}
loading={loading}
rowKey="name"
rowClassName={(record) => {
return record.rId == selectRoad ? 'list-row-actived' : '';
}}
toolBarRender={() => [
<div>
<Button onClick={() => setAddVisible(true)} type="primary" style={{ width: '100%', marginBottom: 8 }} >新增</Button>
<Input placeholder='输入道路名称' onChange={doRoadNameSearch} ></Input>
</div>
]}
options={false}
pagination={false}
search={false}
onRow={(record) => {
return {
onClick: () => {
if (record) {
setSelectRoad(record.rId);
onChange(record);
}
},
};
}}
/>
<RoadModal
roads={roads}
isVisible={addVisible}
onSubmit={createRoadDir}
onCancel={() => { setAddVisible(false) }}
/>
</div>
);
};
const FileTable = (props) => {
const { roads, fileList, dispatch, fileListLoading, roadsLoading } = props;
const [record, setRecord] = useState();
const [dateRange, setDateRange] = useState();
const [detailVisible, setDetailVisible] = useState(false)
const [activeTabKey1, setActiveTabKey1] = useState('1');
const [uploadVisible, setUploadVisible] = useState(false);
const { RangePicker } = DatePicker;
useEffect(() => {
if (roads && roads instanceof Array) {
setRecord(roads[0]);
}
}, [roads])
useEffect(() => {
if (record) {
queryData();
}
}, [record, dateRange])
const queryData = () => {
const { rId } = record;
dispatch(getFileList({ fId: activeTabKey1, limit: 10, offset: 0, roadId: rId }))
}
const onPageChange = (page, pageSize) => {
dispatch(getFileList({ fId: activeTabKey1, limit: pageSize, offset: (page - 1) * pageSize, roadId: rId }))
}
useEffect(() => {
if (record && activeTabKey1) {
queryData();
}
}, [activeTabKey1, record])
const handelRefresh = () => {
}
const handleClose = () => {
setDetailVisible(false)
}
const handleOpen = () => {
setDetailVisible(true)
}
const tabList = [
{
key: '1',
tab: '前期资料',
}, {
key: '2',
tab: '施工资料',
}, {
key: '3',
tab: '竣工资料',
}, {
key: '4',
tab: '维修资料',
}, {
key: '5',
tab: '道路资料',
},
];
const onTab1Change = (key) => {
setActiveTabKey1(key);
};
const handleChangeRecord = (newRecord) => {
let target = null;
if (!record || newRecord.rId != record.rId) {
target = newRecord;
}
setRecord(target);
}
const hanleUpload = () => {
}
return (
<div className='card-protable'>
<Card >
<RoadNameList
dispatch={dispatch}
queryData={queryData}
onChange={(record) => handleChangeRecord(record)}
record={record}
roads={roads}
loading={roadsLoading} />
</Card>
<Card
style={{ flex: 1 }}
tabList={tabList}
activeTabKey={activeTabKey1}
onTabChange={(key) => {
onTab1Change(key);
}}
>
<Row>
<Button onClick={() => { setUploadVisible(true) }} type="primary" style={{ width: 160, marginBottom: 8 }} >上传</Button>
</Row>
<Card style={{ flex: 1 }}>
<DetailList fileList={fileList} record={record} loading={fileListLoading} dispatch={dispatch} handleOpen={handleOpen} handelRefresh={handelRefresh} onPageChange={onPageChange} />
</Card>
</Card>
<UploadModal
isVisible={uploadVisible}
onCancel={() => { setUploadVisible(false) }}
onConfirm={hanleUpload}
/>
</div>
);
};
function mapStateToProps(state) {
const { fileDirs, fileList } = state;
return {
roads: fileDirs.data,
roadsLoading: fileDirs.isRequesting,
fileList: fileList.data,
fileListLoading: fileList.isRequesting,
};
}
export default connect(mapStateToProps)(FileTable);

28
web/client/src/sections/fillion/components/protable.less

@ -2,20 +2,32 @@
.ant-table-cell-fix-left { .ant-table-cell-fix-left {
background-color: #ffffff !important; background-color: #ffffff !important;
} }
.ant-table-cell-fix-right { .ant-table-cell-fix-right {
background-color: #ffffff !important; background-color: #ffffff !important;
} }
} }
.spilce{
.split-row-select-active { .list-row-actived{
background-color: #e6f7ff; background-color: #7cafc6;
} font-weight: 600;
th {
display: none;
}
} }
.card-protable{display: flex;
// .spilce {
// .split-row-select-active {
// background-color: #7cafc6;
// font-weight: 600;
// }
// th {
// display: none;
// }
// }
.card-protable {
display: flex;
flex-direction: row; flex-direction: row;
width: 100%; width: 100%;
} }

40
web/client/src/sections/fillion/containers/file.js

@ -0,0 +1,40 @@
import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux';
import '../style.less';
import { queryFileDir } from '../actions/file';
import FileTable from '../components/fileTable';
const superagent = require('superagent');
const patrol = (props) => {
const { dispatch, user } = props
useEffect(() => {
dispatch(queryFileDir())
}, [true])
//批量导出
const exports = (ids, counts) => {
let reportIds = [];
if (ids.length)
reportIds = ids
else
reportIds = (counts || {}).ids || [];
superagent.post('/_report/http')
.send({ id: reportIds.map(i => Number(i)) }).end((err, res) => {
const resTextIs = res.text.split('/').pop()
window.open(
'/_api/' +
`attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`)
})
}
return (
<> <FileTable exports={exports} />
</>
)
}
function mapStateToProps(state) {
const { auth } = state
return {
user: auth.user,
}
}
export default connect(mapStateToProps)(patrol);

3
web/client/src/sections/fillion/containers/index.js

@ -11,4 +11,5 @@ import Videois from './videois';
import PromoTional from './promotional'; import PromoTional from './promotional';
import Maintenance from './maintenance'; import Maintenance from './maintenance';
import Patrol from './patrol'; import Patrol from './patrol';
export { Infor,transportation,BridgeTable,HigHways,OperaTional,Enforce,Public,Videois,PromoTional,Maintenance,Patrol }; import File from './file';
export { Infor,transportation,BridgeTable,HigHways,OperaTional,Enforce,Public,Videois,PromoTional,Maintenance,Patrol,File};

3
web/client/src/sections/fillion/nav-item.js

@ -32,6 +32,9 @@ export function getNavItem(user, dispatch) {
<Menu.Item key="fillionpublic"> <Menu.Item key="fillionpublic">
<Link to="/fillion/public">公交管理</Link> <Link to="/fillion/public">公交管理</Link>
</Menu.Item> </Menu.Item>
<Menu.Item key="fileCont">
<Link to="/fillion/file">档案管理</Link>
</Menu.Item>
<Menu.Item key="fillionvideois"> <Menu.Item key="fillionvideois">
<Link to="/fillion/videois">视频管理</Link> <Link to="/fillion/videois">视频管理</Link>
</Menu.Item> </Menu.Item>

11
web/client/src/sections/fillion/routes.js

@ -10,6 +10,7 @@ import { Videois } from './containers';
import { PromoTional } from './containers'; import { PromoTional } from './containers';
import { Maintenance } from './containers' import { Maintenance } from './containers'
import { Patrol } from './containers' import { Patrol } from './containers'
import { File } from './containers';
export default [{ export default [{
type: 'inner', type: 'inner',
route: { route: {
@ -74,7 +75,15 @@ export default [{
menuSelectKeys: ['fillionpublic'], menuSelectKeys: ['fillionpublic'],
component: Public, component: Public,
breadcrumb: '公交管理', breadcrumb: '公交管理',
}, { },
{
path: '/file',
key: 'fileCont',
menuSelectKeys: ['fileCont'],
component: File,
breadcrumb: '档案管理',
},
{
path: '/videois', path: '/videois',
key: 'fillionvideois', key: 'fillionvideois',
menuSelectKeys: ['fillionvideois'], menuSelectKeys: ['fillionvideois'],

2
web/client/src/themes/light.json

File diff suppressed because one or more lines are too long

8
web/client/src/utils/webapi.js

@ -43,6 +43,14 @@ export const ApiTable = {
getReportDetail: 'report/{reportId}/detail', getReportDetail: 'report/{reportId}/detail',
getUsers: 'user', getUsers: 'user',
//档案管理
uploadFile: 'netdisk-files/upload',
deleteFile: 'netdisk-files/delete',
getFileList: 'netdisk-files/query',
createFileDir: 'create/struct/dir',
delFileDir: 'netdisk-files/dir/delete',
queryFileDIr: 'get/file/dirs',
updateFileDir: 'netdisk-files/struct/dir/update',
//运政管理 //运政管理
getOperaTional: 'vehicle', putOperaTional: 'vehicle', getOperaTional: 'vehicle', putOperaTional: 'vehicle',

5
web/log/development.txt

@ -20970,3 +20970,8 @@
} }
2022-07-27 11:00:11.991 - debug: [FS-LOGGER] Init. 2022-07-27 11:00:11.991 - debug: [FS-LOGGER] Init.
>>>>>>> Stashed changes >>>>>>> Stashed changes
2022-07-28 09:52:36.378 - debug: [FS-LOGGER] Init.
2022-07-28 10:26:19.323 - debug: [FS-LOGGER] Init.
2022-07-28 18:37:17.090 - debug: [FS-LOGGER] Init.
2022-07-28 18:47:31.071 - debug: [FS-LOGGER] Init.
2022-07-28 18:48:34.776 - debug: [FS-LOGGER] Init.

2
web/package.json

@ -6,7 +6,7 @@
"scripts": { "scripts": {
"test": "mocha", "test": "mocha",
"start": "cross-env NODE_ENV=development npm run start-params", "start": "cross-env NODE_ENV=development npm run start-params",
"start-params": "npm run color && node server -p 5000 -u http://10.8.30.7:14000", "start-params": "npm run color && node server -p 5000 -u http://localhost:4000",
"deploy": "export NODE_ENV=production&&npm run color && npm run build && node server", "deploy": "export NODE_ENV=production&&npm run color && npm run build && node server",
"build-dev": "export NODE_ENV=development&&webpack --config webpack.config.js", "build-dev": "export NODE_ENV=development&&webpack --config webpack.config.js",
"build": "export NODE_ENV=production&&webpack --config webpack.config.prod.js", "build": "export NODE_ENV=production&&webpack --config webpack.config.prod.js",

Loading…
Cancel
Save