Authored by wangtao

Merge branch 'master-mj' of http://113.200.75.45:82/monitor_v3/hg-monitor-web into master-mj

Showing 19 changed files with 159 additions and 87 deletions
... ... @@ -7,11 +7,13 @@ layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view',
exports('backupDingjia', function () {
var sessions = layui.sessions;
var accessToken = localStorage.getItem("accessToken");
//加载业务
loadConditionSelect();
reloadAllChange();
//加载表格数据
renderBackupDingjiaListTable();
//发送状态
// 下拉框改变搜索
form.on('select(slt-dingjia-biz)', reloadAllChange);
form.on('select(slt-dingjia-biz)', renderBackupDingjiaListTable);
// 加载查询条件下拉框
function loadConditionSelect() {
... ... @@ -117,12 +119,6 @@ layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view',
}
})
}
// 图表,表格重新加载
function reloadAllChange() {
renderBackupDingjiaListTable();
loadConditionSelect();
}
});
});
\ No newline at end of file
... ...
... ... @@ -386,7 +386,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return totalList[data.dataIndex]
... ... @@ -402,8 +402,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '系统升级和补丁升级图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -421,6 +421,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['系统升级', '补丁升级'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -433,7 +437,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -454,7 +458,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -1760,6 +1760,29 @@ layui.define(['xmSelect', 'md5'], function (exports) {
});
return value;
},
/**
* 获取机房的cmdb配置项类
*/
getCmdbMachineObjectId:function () {
var accessToken = '';
var cmdbMachineRoomObjId = '';
layui.use(['sessions', 'common'], function () {
accessToken = layui.common.getMjToken();
});
let url = `${obj.domainName}/mj/sys/conf/getSelect/objectId?accessToken=${accessToken}`
$.ajax({
url: url,
async: false,
success: function (res) {
var selects = res.data.options;
if(selects && selects.length>0){
cmdbMachineRoomObjId = selects[0].value;
}
}
})
return cmdbMachineRoomObjId;
}
};
... ...
... ... @@ -14,7 +14,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
exports('deviceAdd', function (data) {
var accessToken = common.getMjToken();
//机房cmdb配置项类id
var objectId = '5A130B5304C348BA98E7E3BDE765611';
var objectId = common.getCmdbMachineObjectId();
var enterTime = {};
var outTime = {};
var devicesBak = [];
... ...
... ... @@ -11,7 +11,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
exports('devicehitch', function () {
var accessToken = common.getMjToken();
//机房cmdb配置项类id
var objectId = '5A130B5304C348BA98E7E3BDE765611';
var objectId = common.getCmdbMachineObjectId();
var domainName = common.domainName;
var orgChart = echarts.init(document.getElementById('chart-devicehitch-report'));
var dateLimit = "";
... ... @@ -293,7 +293,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return totalList[data.dataIndex]
... ... @@ -309,8 +309,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '设备维修统计图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -328,6 +328,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['未维修', '已维修'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -340,7 +344,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -361,7 +365,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -16,7 +16,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
exports('devicehitchAdd', function (data) {
var accessToken = common.getMjToken();
//机房cmdb配置项类id
var objectId = '5A130B5304C348BA98E7E3BDE765611';
var objectId = common.getCmdbMachineObjectId();
var userSelect = "";
var currentDate = {}
var applyDate = {}
... ...
... ... @@ -437,7 +437,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return totalList[data.dataIndex]
... ... @@ -453,8 +453,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '应急预案和演练报告图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -472,6 +472,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['应急预案', '演练报告'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -484,7 +488,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval: 0,
rotate: 15
... ... @@ -505,7 +509,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -20,7 +20,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
var manufactureArr = [];
var machineArr = [];
//机房cmdb配置项类id
var objectId = '5A130B5304C348BA98E7E3BDE765611';
var objectId = common.getCmdbMachineObjectId();
//日期范围选择
laydate.render({
elem: '#devicedateLimit'
... ... @@ -514,7 +514,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return totalList[data.dataIndex]
... ... @@ -530,8 +530,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '设备出入和配件更换图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -549,6 +549,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['设备进出', '配件更换'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -561,7 +565,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval: 0,
rotate: 15
... ... @@ -582,7 +586,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -17,7 +17,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
var dateLimit = ""
var createTime = "month"
//机房cmdb配置项类id
var objectId = '5A130B5304C348BA98E7E3BDE765611';
var objectId = common.getCmdbMachineObjectId();
//日期范围选择
laydate.render({
... ... @@ -299,7 +299,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return countList[data.dataIndex]
... ... @@ -323,8 +323,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '设备出入和配件更换图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -342,6 +342,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['人员进出'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -354,7 +358,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -375,7 +379,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ... @@ -395,13 +399,6 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
}],
series: series
};
option.xAxis.axisLabel.color = function (value, index) {
if (value === 'Thu' || value === 'Fri') {
return 'blue';
} else {
return '#333'; // 普通颜色
}
};
timeChart.setOption(option)
});
}
... ...
... ... @@ -252,7 +252,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return countList[data.dataIndex]
... ... @@ -276,8 +276,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '厂商加班申请图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -295,6 +295,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['厂商加班申请'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -307,7 +311,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -328,7 +332,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -215,7 +215,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return countList[data.dataIndex]
... ... @@ -239,8 +239,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '视频会议申请图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -258,6 +258,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['视频会议申请'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -270,7 +274,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -291,7 +295,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -170,7 +170,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return countList[data.dataIndex]
... ... @@ -194,8 +194,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '会议纪要图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -213,6 +213,9 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['会议纪要'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -225,7 +228,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -246,7 +249,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -126,7 +126,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
}, {
field: 'omanufacturerName', title: '工作单位', align: 'center',templet: function (d) {
var manufacturerName = '';
if(d.manufacturerId == '0'){
if(d.omanufacturerId == '0'){
manufacturerName = d.manufacturerOther;
}else {
if(manufactureArr && manufactureArr.length>0){
... ... @@ -292,7 +292,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return totalList[data.dataIndex]
... ... @@ -316,8 +316,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '数据库恢复验证统计图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -335,6 +335,9 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['数据库恢复验证'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -347,7 +350,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -368,7 +371,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -240,13 +240,13 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
name: {
fontSize: 14,
fontWeight: 'normal',
color: '#666666',
color: '#a3a3a4',
padding: [10, 0]
},
val: {
fontSize: 32,
fontWeight: 'bold',
color: '#333333',
color: '#a3a3a4',
}
}
}
... ... @@ -287,12 +287,12 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
name: {
fontSize: 14,
padding: [0, 10, 0, 4],
color: '#666666'
color: '#a3a3a4'
},
value: {
fontSize: 18,
fontWeight: 'bold',
color: '#333333'
color: '#a3a3a4'
}
}
}
... ... @@ -332,7 +332,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return countList[data.dataIndex]
... ... @@ -356,8 +356,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
title: {
text: '线路调整图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
color: '#a3a3a4',
fontSize: 12
}
},
tooltip: {
... ... @@ -375,6 +375,10 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
},
legend: {
data: ['线路调整'],
textStyle: {
color: '#a3a3a4'
},
selectedMode: false
},
grid: [{
... ... @@ -387,7 +391,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval:0,
rotate:15
... ... @@ -408,7 +412,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ...
... ... @@ -60,7 +60,7 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
el: '#shutdown_plan_add_res',
name: 'resIds',
layVerify: 'required',
autoRow: true,
// autoRow: true,
filterable: true,
toolbar: {
show: true,
... ... @@ -86,7 +86,7 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
el: '#shutdown_plan_add_biz',
name: 'busIds',
layVerify: 'required',
autoRow: true,
// autoRow: true,
filterable: true,
toolbar: {
show: true,
... ...
... ... @@ -16,7 +16,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'commonDetail','sessi
var enterTime = {}
var outTime = {}
var staffsBak = []
var objectId = '5A130B5304C348BA98E7E3BDE765611';
var objectId = common.getCmdbMachineObjectId();
// var tableBak = table.cache.identifying-table;
//渲染表单
form.render(null, 'add-staff-form')
... ...
... ... @@ -598,7 +598,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
formatter: function (data) {
return reportedList[data.dataIndex] + '/' + data.value
... ... @@ -699,7 +699,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
data: xData,
gridIndex: 0,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval: 0,
rotate: 25
... ... @@ -809,7 +809,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
show: true,
position: 'top',
textStyle: {
color: '#555'
color: '#a3a3a4'
},
},
itemStyle: {
... ... @@ -839,7 +839,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'category',
data: xData,
axisLabel: {
color: '#333',
color: '#a3a3a4',
show: true,
interval: 0,
rotate: 19,
... ... @@ -861,7 +861,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
color: '#a3a3a4'
},
splitLine: {
lineStyle: {
... ... @@ -1007,7 +1007,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
val: {
fontSize: 32,
fontWeight: 'bold',
color: '#333333',
color: '#a3a3a4',
}
}
}
... ... @@ -1048,12 +1048,12 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
name: {
fontSize: 14,
padding: [0, 10, 0, 4],
color: '#666666'
color: '#a3a3a4'
},
value: {
fontSize: 18,
fontWeight: 'bold',
color: '#333333'
color: '#a3a3a4'
}
}
}
... ...
... ... @@ -17,7 +17,7 @@
</div>
<!--lsq 通知压缩查询增加搜索按钮 2022-06-21-->
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline-sm">
<div class=""><!-- layui-input-inline layui-input-inline-sm -->
<button class="layui-btn layui-btn-normal layui-btn-normal" id="seachNoticemerge"
type="button">
<!-- lsq 搜索更改为查询 2022-06-27-->
... ...
... ... @@ -1829,6 +1829,28 @@ layui.define(['xmSelect', 'md5'], function (exports) {
// return false;
// }
return true;
},
/**
* 获取机房的cmdb配置项类
*/
getCmdbMachineObjectId:function () {
var accessToken = '';
var cmdbMachineRoomObjId = '';
layui.use(['sessions', 'common'], function () {
accessToken = layui.common.getMjToken();
});
let url = `${obj.domainName}/mj/sys/conf/getSelect/objectId?accessToken=${accessToken}`
$.ajax({
url: url,
async: false,
success: function (res) {
var selects = res.data.options;
if(selects && selects.length>0){
cmdbMachineRoomObjId = selects[0].value;
}
}
})
return cmdbMachineRoomObjId;
}
};
... ...