Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
inspection-pad-web
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
专网
inspection-pad-web
Commits
e0416766
提交
e0416766
authored
4月 15, 2025
作者:
zs
浏览文件
操作
浏览文件
下载
差异文件
Merge branct puh 'dev' of
https://git.yfzx.zjtys.com.cn/privateNetwork/inspection-pad-web
into dev
上级
34f6fb51
464de427
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
887 行增加
和
845 行删除
+887
-845
inspect.js
api/inspect.js
+2
-1
shaftInspectionList.vue
pages/shaftInspection/shaftInspectionList.vue
+885
-844
没有找到文件。
api/inspect.js
浏览文件 @
e0416766
...
@@ -283,7 +283,8 @@ LIMIT 1;`
...
@@ -283,7 +283,8 @@ LIMIT 1;`
}
}
let
sql
=
`UPDATE
${
table
.
inspectionRecordName
}
SET
let
sql
=
`UPDATE
${
table
.
inspectionRecordName
}
SET
signImg = '
${
data
.
signImg
}
',
signImg = '
${
data
.
signImg
}
',
synFlag = '
${
data
.
synFlag
}
'
synFlag = '
${
data
.
synFlag
}
',
isException = '
${
data
.
isException
}
',
WHERE id =
${
data
.
id
}
`
;
WHERE id =
${
data
.
id
}
`
;
await
sqllitedb
.
executeSQL
(
sql
);
await
sqllitedb
.
executeSQL
(
sql
);
}
catch
(
e
)
{
}
catch
(
e
)
{
...
...
pages/shaftInspection/shaftInspectionList.vue
浏览文件 @
e0416766
<
template
>
<
template
>
<!-- 井道巡检列表 -->
<!-- 井道巡检列表 -->
<view
class=
"container"
>
<view
class=
"container"
>
<uni-nav-bar
<uni-nav-bar
:fixed=
"true"
:fixed=
"true"
background-color=
"rgba(214, 240, 255, 0.0)"
background-color=
"rgba(214, 240, 255, 0.0)"
status-bar
status-bar
rightWidth=
"300"
rightWidth=
"300"
>
>
<block
slot=
"left"
>
<block
slot=
"left"
>
<view
class=
""
@
click=
"back"
>
<view
class=
""
@
click=
"back"
>
<text
class=
"iconfont icon-fanhui"
></text>
<text
class=
"iconfont icon-fanhui"
></text>
</view>
</view>
</block>
</block>
<block
slot=
"right"
class=
"nav-right"
>
<block
slot=
"right"
class=
"nav-right"
>
<view
class=
"header-buttons"
>
<view
class=
"header-buttons"
>
<view
class=
"button"
@
click=
"lookTable"
>
查看样表
</view>
<view
class=
"button"
@
click=
"lookTable"
>
查看样表
</view>
</view>
</view>
</block>
</block>
</uni-nav-bar>
</uni-nav-bar>
<!-- 第二个模块 -->
<!-- 第二个模块 -->
<view
class=
"profile-section"
>
<view
class=
"profile-section"
>
<view
class=
"profile-box"
>
<view
class=
"profile-box"
>
<view
class=
"profile-left"
>
<view
class=
"profile-left"
>
<view
class=
"avatar"
>
<view
class=
"avatar"
>
<image
<image
src=
"@/static/img/add-img/defaultAvatar.png"
src=
"@/static/img/add-img/defaultAvatar.png"
mode=
"aspectFit"
mode=
"aspectFit"
></image>
></image>
</view>
</view>
<view
class=
"info"
>
<view
class=
"info"
>
<view
class=
"username"
>
{{
userInfo
.
user
}}
</view>
<view
class=
"username"
>
{{
userInfo
.
user
}}
</view>
<view
class=
"number"
<view
class=
"number"
>
巡检编号:
<text
class=
"value"
>
{{
inspectionCode
}}
</text></view
>
巡检编号:
<text
class=
"value"
>
{{
inspectionCode
}}
</text></view
>
>
</view>
</view>
</view>
</view>
<!--
{{
isSubmit
}}
{{
isSign
}}
-->
<!--
{{
isSubmit
}}
{{
isSign
}}
-->
<view
v-if=
"isSubmit"
class=
"profile-right"
>
<view
class=
"profile-right"
>
<button
v-if=
"!isSign"
class=
"record-button"
@
click=
"toSign"
>
<button
巡检人签字
v-if=
"!isSign"
</button>
:disabled=
"!isSubmit"
<view
v-else-if=
"detailsInfo.synchronization != 1"
class=
"action-container"
>
:class=
"
{
<image
'record-button': true,
class=
"sign-img"
'disabled-btn': !isSubmit,
:src=
"detailsInfo.signImg"
}"
mode=
"aspectFit"
>
@click="toSign"
</image>
>
<button
class=
"record-button small"
@
click=
"toSign"
>
巡检人签字
重签
</button>
</button>
<view
<view
class=
"inspection-button"
@
click=
"openDialog(true)"
>
数据同步
</view>
v-else-if=
"detailsInfo.synchronization != 1"
</view>
class=
"action-container"
</view>
>
</view>
<image
class=
"sign-img"
:src=
"detailsInfo.signImg"
mode=
"aspectFit"
>
</view>
</image>
<view
v-if=
"!isSign"
class=
"content-box"
>
<button
class=
"record-button small"
@
click=
"toSign"
>
重签
</button>
<!-- 左侧模块 -->
<view
class=
"inspection-button"
@
click=
"openDialog(true)"
<view
class=
"left-side"
>
>
数据同步
</view
<view
>
v-for=
"(tab, index) in tabs.slice(0, 7)"
</view>
:key=
"index"
</view>
:class=
"['tab-item',
{ active: activeTab === index }]"
</view>
@click="getActiveTab(index)"
</view>
>
<view
v-if=
"!isSign"
class=
"content-box"
>
{{
tab
}}
<!-- 左侧模块 -->
</view>
<view
class=
"left-side"
>
</view>
<view
v-for=
"(tab, index) in tabs.slice(0, 7)"
<!-- 右侧模块 -->
:key=
"index"
<view
class=
"right-side"
>
:class=
"['tab-item',
{ active: activeTab === index }]"
<!-- 第一部分:按钮 -->
@click="getActiveTab(index)"
<view
class=
"button-group"
>
>
<view
class=
"button"
{{
tab
}}
>
已巡检
<text
class=
"number"
>
{{
inspectionNumber
}}
</text
</view>
>
个井道
</view
</view>
>
<view
class=
"button"
>
<!-- 右侧模块 -->
<text
class=
"iconfont icon-tixing"
></text
<view
class=
"right-side"
>
>
请点击“需巡检井道”执行巡检
</view
<!-- 第一部分:按钮 -->
>
<view
class=
"button-group"
>
</view>
<view
class=
"button"
>
已巡检
<text
class=
"number"
>
{{
inspectionNumber
}}
</text
<!-- 第二部分:卡片组 -->
>
个井道
</view
<view
class=
"card-box"
>
>
<view
<view
class=
"button"
>
class=
"card-group"
<text
class=
"iconfont icon-tixing"
></text
v-for=
"(item, index) in cardsInfo"
>
请点击“需巡检井道”执行巡检
</view
:key=
"index"
>
>
</view>
<view
class=
"card-title"
>
{{
item
.
name
}}
</view>
<view
class=
"card-list"
>
<!-- 第二部分:卡片组 -->
<view
<view
class=
"card-box"
>
v-for=
"position in item.position"
<view
:key=
"position.dictValue"
class=
"card-group"
class=
"card"
v-for=
"(item, index) in cardsInfo"
:class=
"
{
:key=
"index"
status1: position.status == 1,
>
status2: position.status == 2,
<view
class=
"card-title"
>
{{
item
.
name
}}
</view>
}"
<view
class=
"card-list"
>
@click="
<view
toShaftInspection(
v-for=
"position in item.position"
item.value,
:key=
"position.dictValue"
position.dictValue,
class=
"card"
item.name + position.dictLabel
:class=
"
{
)
status1: position.status == 1,
"
status2: position.status == 2,
>
}"
<view
class=
"card-content"
>
@click="
<view
class=
"status-line"
>
toShaftInspection(
<text
item.value,
v-if=
"position.status == 0"
position.dictValue,
class=
"iconfont icon-weixunjian"
item.name + position.dictLabel
></text>
)
<text
"
v-if=
"position.status == 1"
>
class=
"iconfont icon-wancheng"
<view
class=
"card-content"
>
></text>
<view
class=
"status-line"
>
<text
<text
v-if=
"position.status == 2"
v-if=
"position.status == 0"
class=
"iconfont icon-shibai1"
class=
"iconfont icon-weixunjian"
></text>
></text>
<text
v-if=
"position.isSubmit === 0"
class=
"status-text"
>
草稿
</text>
<text
<text
v-else
class=
"status-text"
>
{{
position
.
statusLable
}}
</text>
v-if=
"position.status == 1"
</view>
class=
"iconfont icon-wancheng"
<view
class=
"info-line"
>
></text>
<text
class=
"info-text"
<text
>
{{
item
.
name
}}{{
position
.
dictLabel
}}
</text
v-if=
"position.status == 2"
>
class=
"iconfont icon-shibai1"
</view>
></text>
</view>
<text
v-if=
"position.isSubmit === 0"
class=
"status-text"
</view>
>
草稿
</text
</view>
>
</view>
<text
v-else
class=
"status-text"
>
{{
</view>
position
.
statusLable
</view>
}}
</text>
</view>
</view>
<view
v-else
class=
"content-box"
>
<view
class=
"info-line"
>
<!-- 左侧模块 -->
<text
class=
"info-text"
<view
class=
"left-side"
>
>
{{
item
.
name
}}{{
position
.
dictLabel
}}
</text
<view
>
v-for=
"(tab, index) in tabsDetail.slice(0, 7)"
</view>
:key=
"index"
</view>
:class=
"['tab-item',
{ active: activeTab === index }]"
</view>
@click="getActiveTabDetails(index, tab)"
</view>
>
</view>
{{
tab
}}
</view>
</view>
</view>
</view>
</view>
<view
v-else
class=
"content-box"
>
<!-- 右侧模块 -->
<!-- 左侧模块 -->
<view
class=
"right-side"
>
<view
class=
"left-side"
>
<!-- 第二部分:卡片组 -->
<view
<view
class=
"card-box"
>
v-for=
"(tab, index) in tabsDetail.slice(0, 7)"
<view
:key=
"index"
class=
"card-group"
:class=
"['tab-item',
{ active: activeTab === index }]"
v-for=
"(item, index) in cardsInfo"
@click="getActiveTabDetails(index, tab)"
:key=
"index"
>
>
{{
tab
}}
<view
class=
"card-title"
>
{{
item
.
name
}}
</view>
</view>
<view
class=
"card-list"
>
</view>
<view
v-for=
"position in item.position"
<!-- 右侧模块 -->
:key=
"position.dictValue"
<view
class=
"right-side"
>
class=
"card"
<!-- 第二部分:卡片组 -->
:class=
"
{
<view
class=
"card-box"
>
status1: position.status == 1,
<view
status2: position.status == 2,
class=
"card-group"
}"
v-for=
"(item, index) in cardsInfo"
@click="getDetailsItem(item.value, position.dictCode)"
:key=
"index"
>
>
<view
class=
"card-content"
>
<view
class=
"card-title"
>
{{
item
.
name
}}
</view>
<view
class=
"status-line"
>
<view
class=
"card-list"
>
<text
<view
v-if=
"position.status == 0"
v-for=
"position in item.position"
class=
"iconfont icon-weixunjian"
:key=
"position.dictValue"
></text>
class=
"card"
<text
:class=
"
{
v-if=
"position.status == 1"
status1: position.status == 1,
class=
"iconfont icon-wancheng"
status2: position.status == 2,
></text>
}"
<text
@click="getDetailsItem(item.value, position.dictCode)"
v-if=
"position.status == 2"
>
class=
"iconfont icon-shibai1"
<view
class=
"card-content"
>
></text>
<view
class=
"status-line"
>
<text
v-if=
"position.isSubmit === 0"
class=
"status-text"
>
草稿
</text>
<text
<text
v-else
class=
"status-text"
>
{{
position
.
statusLable
}}
</text>
v-if=
"position.status == 0"
</view>
class=
"iconfont icon-weixunjian"
<view
class=
"info-line"
>
></text>
<text
class=
"info-text"
<text
>
{{
item
.
name
}}{{
position
.
dictLabel
}}
</text
v-if=
"position.status == 1"
>
class=
"iconfont icon-wancheng"
</view>
></text>
</view>
<text
</view>
v-if=
"position.status == 2"
</view>
class=
"iconfont icon-shibai1"
</view>
></text>
<view
v-if=
"isShow"
class=
"card-group"
>
<text
v-if=
"position.isSubmit === 0"
class=
"status-text"
<detail
ref=
"detail"
:detailsItem=
"detailsItem"
></detail
>
草稿
</text
></view>
>
</view>
<text
v-else
class=
"status-text"
>
{{
</view>
position
.
statusLable
</view>
}}
</text>
<signDialog
ref=
"signDialog"
@
confirm=
"handlePopupConfirm"
></signDialog>
</view>
<Dialog
v-show=
"showSyncDialog"
:list=
"list"
@
close=
"openDialog(false)"
></Dialog>
<view
class=
"info-line"
>
</view>
<text
class=
"info-text"
</
template
>
>
{{
item
.
name
}}{{
position
.
dictLabel
}}
</text
>
<
script
>
</view>
import
moment
from
"moment"
;
</view>
import
{
pad_2_1_inspection_position
,
pad_2_1_floor
}
from
"@/utils/dict.js"
;
</view>
import
{
</view>
writeInspectionData
,
</view>
addLog
,
<view
v-if=
"isShow"
class=
"card-group"
>
getLogContent
,
<detail
ref=
"detail"
:detailsItem=
"detailsItem"
></detail
LOG_TYPE_ENUM
,
></view>
}
from
"@/utils/IoReadingAndWriting.js"
;
</view>
import
{
getInspectionDetails
}
from
"@/request/index.js"
;
</view>
import
inspectApi
from
"@/api/inspect"
;
</view>
import
signDialog
from
"@/components/signDialog.vue"
;
<signDialog
ref=
"signDialog"
@
confirm=
"handlePopupConfirm"
></signDialog>
import
detail
from
"./model/detail.vue"
;
<Dialog
import
Dialog
from
'@/pages/inspectionManagement/dialog.vue'
v-show=
"showSyncDialog"
import
{
sqlToData
,
dataToSql
}
from
"./shared"
;
:list=
"list"
export
default
{
@
close=
"openDialog(false)"
components
:
{
></Dialog>
signDialog
,
</view>
detail
,
</
template
>
Dialog
},
<
script
>
data
()
{
import
moment
from
"moment"
;
return
{
import
{
pad_2_1_inspection_position
,
pad_2_1_floor
}
from
"@/utils/dict.js"
;
tabs
:
[
"所有井道"
],
// 选项卡内容
import
{
tabsDetail
:
[
"所有井道"
],
writeInspectionData
,
activeTab
:
0
,
// 默认选中的选项卡
addLog
,
inspectionNumber
:
0
,
// 已巡检的井道数量
getLogContent
,
cards
:
[
LOG_TYPE_ENUM
,
"A座-1楼"
,
}
from
"@/utils/IoReadingAndWriting.js"
;
"A座-2楼"
,
import
{
getInspectionDetails
}
from
"@/request/index.js"
;
"A座-3楼"
,
import
inspectApi
from
"@/api/inspect"
;
"A座-4楼"
,
import
signDialog
from
"@/components/signDialog.vue"
;
"A座-5楼"
,
import
detail
from
"./model/detail.vue"
;
"A座-6楼"
,
import
Dialog
from
"@/pages/inspectionManagement/dialog.vue"
;
"A座-7楼"
,
import
{
sqlToData
,
dataToSql
}
from
"./shared"
;
"A座-8楼"
,
export
default
{
],
// 卡片内容
components
:
{
inspectionCode
:
""
,
signDialog
,
cardsInfo
:
[],
//卡片数据
detail
,
tabList
:
[],
Dialog
,
activeTabIndex
:
0
,
},
baseInfo
:
{},
// 基础信息
data
()
{
tempForm
:
{
return
{
// 对应每个tab下的数据 [示例 0: 数据]
tabs
:
[
"所有井道"
],
// 选项卡内容
},
tabsDetail
:
[
"所有井道"
],
detailsInfo
:
{},
// 详情
activeTab
:
0
,
// 默认选中的选项卡
isDisable
:
false
,
// 禁用
inspectionNumber
:
0
,
// 已巡检的井道数量
isSign
:
false
,
//签名状态
cards
:
[
isSubmit
:
0
,
//提交状态
"A座-1楼"
,
uid
:
""
,
"A座-2楼"
,
options
:
{},
//存储数据
"A座-3楼"
,
backValue
:
""
,
"A座-4楼"
,
all_data
:
[],
//所有数据
"A座-5楼"
,
detailsItem
:
{},
//单个井道详情
"A座-6楼"
,
isShow
:
false
,
"A座-7楼"
,
showSyncDialog
:
false
,
"A座-8楼"
,
list
:
[]
],
// 卡片内容
};
inspectionCode
:
""
,
},
cardsInfo
:
[],
//卡片数据
computed
:
{
tabList
:
[],
userInfo
()
{
activeTabIndex
:
0
,
return
this
.
$store
.
state
.
now_user
||
{};
baseInfo
:
{},
// 基础信息
},
tempForm
:
{
isOperationPermissions
()
{
// 对应每个tab下的数据 [示例 0: 数据]
// 是否有操作权限
},
const
{
uid
,
createByName
}
=
this
.
detailsInfo
;
detailsInfo
:
{},
// 详情
return
!
uid
||
(
uid
&&
createByName
==
this
.
userInfo
.
user
);
isDisable
:
false
,
// 禁用
},
isSign
:
false
,
//签名状态
},
isSubmit
:
0
,
//提交状态
onLoad
(
options
)
{
uid
:
""
,
this
.
options
=
options
;
options
:
{},
//存储数据
this
.
backValue
=
this
.
options
.
backValue
||
""
;
backValue
:
""
,
this
.
isDisable
=
this
.
options
.
isDisable
==
1
?
true
:
false
;
all_data
:
[],
//所有数据
console
.
log
(
"options.uid"
,
this
.
options
.
uid
);
detailsItem
:
{},
//单个井道详情
this
.
uid
=
this
.
options
.
uid
||
""
;
isShow
:
false
,
},
showSyncDialog
:
false
,
onShow
()
{
list
:
[],
if
(
this
.
uid
)
{
};
this
.
getDetails
(
this
.
uid
);
},
}
else
{
computed
:
{
this
.
init
();
userInfo
()
{
}
return
this
.
$store
.
state
.
now_user
||
{};
this
.
all_data
=
this
.
$store
.
state
.
all_data
;
},
},
isOperationPermissions
()
{
mounted
()
{},
// 是否有操作权限
methods
:
{
const
{
uid
,
createByName
}
=
this
.
detailsInfo
;
init
()
{
return
!
uid
||
(
uid
&&
createByName
==
this
.
userInfo
.
user
);
return
new
Promise
((
resolve
,
reject
)
=>
{
},
this
.
tabList
=
pad_2_1_inspection_position
.
rows
.
map
((
item
,
index
)
=>
{
},
this
.
tabs
.
push
(
item
.
dictLabel
);
onLoad
(
options
)
{
return
{
this
.
options
=
options
;
name
:
item
.
dictLabel
,
this
.
backValue
=
this
.
options
.
backValue
||
""
;
value
:
item
.
dictValue
,
this
.
isDisable
=
this
.
options
.
isDisable
==
1
?
true
:
false
;
isVaild
:
false
,
// 校验通过
console
.
log
(
"options.uid"
,
this
.
options
.
uid
);
// type: 1, // 枚举值
this
.
uid
=
this
.
options
.
uid
||
""
;
position
:
pad_2_1_floor
.
rows
,
},
refName
:
`TabContentItem_
${
index
}
`
,
onShow
()
{
descript
:
"检查内容包括门禁、卫生、设备告警。"
,
if
(
this
.
uid
)
{
};
this
.
getDetails
(
this
.
uid
);
});
}
else
{
this
.
cardsInfo
=
this
.
tabList
;
this
.
init
();
this
.
inspectionCode
=
`JDXJ
${
moment
().
format
(
"yyyyMMDDHHmmss"
)}${
}
Math
.
floor
(
Math
.
random
()
*
900
)
+
100
this
.
all_data
=
this
.
$store
.
state
.
all_data
;
}
`
;
},
console
.
log
(
"this.tabList"
,
this
.
tabList
);
mounted
()
{},
if
(
this
.
detailsInfo
.
inspectionType
)
{
methods
:
{
const
fillCheck
=
this
.
detailsInfo
.
fillCheck
.
split
(
","
);
init
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(()
=>
{
this
.
tabList
=
pad_2_1_inspection_position
.
rows
.
map
((
item
,
index
)
=>
{
this
.
tabList
.
forEach
((
item
,
index
)
=>
{
this
.
tabs
.
push
(
item
.
dictLabel
);
item
.
isVaild
=
fillCheck
.
includes
(
item
.
value
);
return
{
this
.
tempForm
[
index
]
&&
name
:
item
.
dictLabel
,
this
.
setComponentData
(
item
.
refName
,
this
.
tempForm
[
index
]);
value
:
item
.
dictValue
,
});
isVaild
:
false
,
// 校验通过
},
500
);
// type: 1, // 枚举值
}
else
{
position
:
pad_2_1_floor
.
rows
,
this
.
baseInfo
=
this
.
$store
.
state
.
temp_data
;
refName
:
`TabContentItem_
${
index
}
`
,
}
descript
:
"检查内容包括门禁、卫生、设备告警。"
,
resolve
();
};
});
});
},
this
.
cardsInfo
=
this
.
tabList
;
// 获取井道详情
this
.
inspectionCode
=
`JDXJ
${
moment
().
format
(
"yyyyMMDDHHmmss"
)}${
getDetailsItem
(
value
,
dictCode
)
{
Math
.
floor
(
Math
.
random
()
*
900
)
+
100
let
item
=
this
.
detailsInfo
.
originData
.
find
(
building
=>
building
.
value
===
value
)?.
position
.
find
(
pos
=>
pos
.
dictCode
===
dictCode
)
}
`
;
console
.
log
(
"this.tabList"
,
this
.
tabList
);
if
(
item
.
status
<
1
)
{
if
(
this
.
detailsInfo
.
inspectionType
)
{
uni
.
showToast
({
const
fillCheck
=
this
.
detailsInfo
.
fillCheck
.
split
(
","
);
title
:
"该井道暂无数据"
,
icon
:
"none"
,
setTimeout
(()
=>
{
});
this
.
tabList
.
forEach
((
item
,
index
)
=>
{
}
item
.
isVaild
=
fillCheck
.
includes
(
item
.
value
);
this
.
detailsItem
=
item
.
details
;
this
.
tempForm
[
index
]
&&
this
.
isShow
=
true
;
this
.
setComponentData
(
item
.
refName
,
this
.
tempForm
[
index
]);
console
.
log
(
"this.detailsItem"
,
this
.
detailsItem
);
});
},
},
500
);
getActiveTab
(
index
)
{
}
else
{
this
.
activeTab
=
index
;
this
.
baseInfo
=
this
.
$store
.
state
.
temp_data
;
console
.
log
(
"this.activeTab"
,
this
.
activeTab
);
}
if
(
this
.
activeTab
==
0
)
{
resolve
();
this
.
cardsInfo
=
this
.
tabList
;
});
}
else
{
},
this
.
cardsInfo
=
[
this
.
tabList
[
index
-
1
]];
// 获取井道详情
}
getDetailsItem
(
value
,
dictCode
)
{
},
let
item
=
this
.
detailsInfo
.
originData
getActiveTabDetails
(
index
,
tab
)
{
.
find
((
building
)
=>
building
.
value
===
value
)
this
.
activeTab
=
index
;
?.
position
.
find
((
pos
)
=>
pos
.
dictCode
===
dictCode
);
// this.cardsInfo = [selected];
if
(
item
.
status
<
1
)
{
// this.cardsInfo = [this.tabList[index]];
uni
.
showToast
({
if
(
this
.
activeTab
==
0
)
{
title
:
"该井道暂无数据"
,
this
.
cardsInfo
=
this
.
tabList
;
icon
:
"none"
,
}
else
{
});
let
selected
=
this
.
tabList
.
find
(
t
=>
t
.
name
===
tab
)
}
this
.
cardsInfo
=
[
selected
];
this
.
detailsItem
=
item
.
details
;
}
this
.
isShow
=
true
;
this
.
isShow
=
false
;
console
.
log
(
"this.detailsItem"
,
this
.
detailsItem
);
},
},
// 回显数据
getActiveTab
(
index
)
{
getDetails
(
uid
)
{
this
.
activeTab
=
index
;
uni
.
showLoading
();
console
.
log
(
"this.activeTab"
,
this
.
activeTab
);
inspectApi
if
(
this
.
activeTab
==
0
)
{
.
info
(
uid
)
this
.
cardsInfo
=
this
.
tabList
;
.
then
((
res
)
=>
{
}
else
{
console
.
log
(
res
)
this
.
cardsInfo
=
[
this
.
tabList
[
index
-
1
]];
const
detailsInfo
=
sqlToData
(
res
);
}
console
.
log
(
"detailsInfo"
,
detailsInfo
);
},
getActiveTabDetails
(
index
,
tab
)
{
this
.
detailsInfo
=
detailsInfo
;
this
.
activeTab
=
index
;
this
.
inspectionNumber
=
detailsInfo
.
inspectionNumber
;
if
(
detailsInfo
.
synchronization
===
1
)
{
// this.cardsInfo = [selected];
// 已同步数据的查看详情时,只展示'已巡检'的井道信息,过滤未巡检的井道
// this.cardsInfo = [this.tabList[index]];
let
defaultList
=
detailsInfo
.
originData
if
(
this
.
activeTab
==
0
)
{
this
.
cardsInfo
=
this
.
tabList
=
defaultList
.
filter
(
building
=>
{
this
.
cardsInfo
=
this
.
tabList
;
building
.
position
=
building
.
position
.
filter
(
pos
=>
pos
.
status
===
1
)
}
else
{
return
building
.
position
.
length
let
selected
=
this
.
tabList
.
find
((
t
)
=>
t
.
name
===
tab
);
})
this
.
cardsInfo
=
[
selected
];
}
else
{
}
this
.
cardsInfo
=
this
.
tabList
=
detailsInfo
.
originData
;
this
.
isShow
=
false
;
}
},
this
.
inspectionCode
=
detailsInfo
.
inspectionCode
;
// 回显数据
// this.cardsInfo = this.tabList = detailsInfo.originData;
getDetails
(
uid
)
{
this
.
isSubmit
=
this
.
detailsInfo
.
originData
.
reduce
((
acc
,
cur
)
=>
{
uni
.
showLoading
();
acc
.
push
(...
cur
.
position
)
inspectApi
return
acc
.
info
(
uid
)
},
[]).
every
(
pos
=>
pos
.
isSubmit
===
''
||
pos
.
isSubmit
===
1
);
.
then
((
res
)
=>
{
this
.
isSign
=
!!
this
.
detailsInfo
.
signImg
;
console
.
log
(
res
);
this
.
cardsInfo
.
forEach
((
item
)
=>
{
const
detailsInfo
=
sqlToData
(
res
);
this
.
tabs
.
push
(
item
.
name
);
console
.
log
(
"detailsInfo"
,
detailsInfo
);
this
.
tabsDetail
.
push
(
item
.
name
);
});
this
.
detailsInfo
=
detailsInfo
;
if
(
this
.
isSign
)
{
this
.
inspectionNumber
=
detailsInfo
.
inspectionNumber
;
this
.
getActiveTabDetails
(
0
);
if
(
detailsInfo
.
synchronization
===
1
)
{
}
// 已同步数据的查看详情时,只展示'已巡检'的井道信息,过滤未巡检的井道
this
.
isDisable
=
this
.
isDisable
||
detailsInfo
.
synchronization
==
1
;
// 是否禁用 1:已同步数据 0: 未同步数据
let
defaultList
=
detailsInfo
.
originData
;
uni
.
hideLoading
();
this
.
cardsInfo
=
this
.
tabList
=
defaultList
.
filter
((
building
)
=>
{
})
building
.
position
=
building
.
position
.
filter
(
.
catch
((
error
)
=>
{
(
pos
)
=>
pos
.
status
===
1
uni
.
showToast
({
);
title
:
error
.
msg
,
return
building
.
position
.
length
;
icon
:
"none"
,
});
duration
:
1000
,
}
else
{
});
this
.
cardsInfo
=
this
.
tabList
=
detailsInfo
.
originData
;
uni
.
hideLoading
();
}
});
this
.
inspectionCode
=
detailsInfo
.
inspectionCode
;
},
// this.cardsInfo = this.tabList = detailsInfo.originData;
// 回显组件数据
this
.
isSubmit
=
this
.
detailsInfo
.
originData
setComponentData
(
refName
,
componentData
)
{
.
reduce
((
acc
,
cur
)
=>
{
this
.
$refs
[
refName
][
0
]
&&
this
.
$refs
[
refName
][
0
].
setForm
(
componentData
);
acc
.
push
(...
cur
.
position
);
},
return
acc
;
// 删除
},
[])
deleteClick
()
{
.
every
((
pos
)
=>
pos
.
isSubmit
===
""
||
pos
.
isSubmit
===
1
);
this
.
$refs
.
inputDialog2
.
open
();
this
.
isSign
=
!!
this
.
detailsInfo
.
signImg
;
},
this
.
cardsInfo
.
forEach
((
item
)
=>
{
toSign
()
{
this
.
tabs
.
push
(
item
.
name
);
this
.
$refs
.
signDialog
.
open
();
this
.
tabsDetail
.
push
(
item
.
name
);
},
});
// tab选中change 时间
if
(
this
.
isSign
)
{
changeTab
(
index
,
item
)
{
this
.
getActiveTabDetails
(
0
);
this
.
draft
(
this
.
activeTabIndex
,
false
,
false
).
then
(()
=>
{
}
this
.
activeTabIndex
=
index
;
this
.
isDisable
=
this
.
isDisable
||
detailsInfo
.
synchronization
==
1
;
// 是否禁用 1:已同步数据 0: 未同步数据
});
uni
.
hideLoading
();
},
})
// 处理弹窗确认
.
catch
((
error
)
=>
{
handlePopupConfirm
(
summary
)
{
uni
.
showToast
({
this
.
detailsInfo
.
isSign
=
this
.
isSign
=
true
;
// 回显到文字显示区域
title
:
error
.
msg
,
this
.
detailsInfo
.
signImg
=
summary
;
// 回显到文字显示区域
icon
:
"none"
,
this
.
submit
(
"sign"
,
this
.
detailsInfo
.
signImg
);
duration
:
1000
,
},
});
uni
.
hideLoading
();
// 提交
});
submit
(
type
=
"sign"
,
value
=
""
)
{
},
const
all_data
=
this
.
all_data
;
//获取全部数据
// 回显组件数据
let
params
=
this
.
detailsInfo
;
setComponentData
(
refName
,
componentData
)
{
params
.
signImg
=
value
;
this
.
$refs
[
refName
][
0
]
&&
this
.
$refs
[
refName
][
0
].
setForm
(
componentData
);
console
.
log
(
"all_data"
,
all_data
);
},
const
index
=
all_data
.
findIndex
((
element
)
=>
element
.
uid
==
this
.
uid
);
// 删除
console
.
log
(
"签字获取数据"
,
params
);
deleteClick
()
{
all_data
[
index
]
=
params
;
this
.
$refs
.
inputDialog2
.
open
();
const
logContent
=
getLogContent
(
LOG_TYPE_ENUM
.
sign
,
"签字"
,
"机房巡检"
);
},
// 更新巡检list
toSign
()
{
console
.
log
(
"all_data存储"
,
all_data
);
this
.
$refs
.
signDialog
.
open
();
console
.
log
(
"all_data一个"
,
all_data
[
index
]);
},
this
.
$store
.
commit
(
"SET_ALL_DATA"
,
all_data
);
// tab选中change 时间
const
userInfo
=
this
.
userInfo
;
changeTab
(
index
,
item
)
{
const
inspectList
=
all_data
.
filter
(
this
.
draft
(
this
.
activeTabIndex
,
false
,
false
).
then
(()
=>
{
(
item
)
=>
item
.
createByName
==
userInfo
.
user
this
.
activeTabIndex
=
index
;
);
});
writeInspectionData
(
inspectList
,
userInfo
.
user
);
},
// 处理弹窗确认
// 更新日志
handlePopupConfirm
(
summary
)
{
const
log_list
=
this
.
$store
.
state
.
log_list
;
this
.
detailsInfo
.
isSign
=
this
.
isSign
=
true
;
// 回显到文字显示区域
logContent
.
inspectionType
=
params
.
inspectionType
;
this
.
detailsInfo
.
signImg
=
summary
;
// 回显到文字显示区域
log_list
.
push
(
logContent
);
// const isException = this.detailsInfo.originData.some(
this
.
$store
.
commit
(
"SET_LOG_LIST"
,
log_list
);
// (item) => item.status == 2
addLog
(
log_list
).
then
((
res
)
=>
{
// );
console
.
log
(
"日志文件写入成功"
);
// this.detailsInfo.isException = isException ? 1 : 0; // 巡检异常
});
this
.
submit
(
if
(
type
===
'sign'
)
{
"sign"
,
inspectApi
.
updateSignImg
({
this
.
detailsInfo
.
signImg
,
id
:
params
.
id
,
this
.
detailsInfo
.
isException
signImg
:
params
.
signImg
,
);
synFlag
:
0
},
})
}
// 提交
uni
.
showToast
({
submit
(
type
=
"sign"
,
value
=
""
,
isException
)
{
title
:
type
==
"sign"
?
"签字成功"
:
"同步成功"
,
const
all_data
=
this
.
all_data
;
//获取全部数据
icon
:
"success"
,
let
params
=
this
.
detailsInfo
;
});
params
.
signImg
=
value
;
console
.
log
(
"all_data"
,
all_data
);
this
.
getActiveTabDetails
(
0
);
const
index
=
all_data
.
findIndex
((
element
)
=>
element
.
uid
==
this
.
uid
);
},
console
.
log
(
"签字获取数据"
,
params
);
lookTable
()
{
all_data
[
index
]
=
params
;
uni
.
navigateTo
({
const
logContent
=
getLogContent
(
LOG_TYPE_ENUM
.
sign
,
"签字"
,
"机房巡检"
);
url
:
"/pages/report/sampleTable?isJF=0"
,
// 更新巡检list
});
console
.
log
(
"all_data存储"
,
all_data
);
},
console
.
log
(
"all_data一个"
,
all_data
[
index
]);
// 跳转到具体的井道
this
.
$store
.
commit
(
"SET_ALL_DATA"
,
all_data
);
toShaftInspection
(
value
,
dictValue
,
location
)
{
const
userInfo
=
this
.
userInfo
;
uni
.
navigateTo
({
const
inspectList
=
all_data
.
filter
(
url
:
`/pages/shaftInspection/shaftInspectionNew?value=
${
value
}
&dictValue=
${
dictValue
}
&inspectionCode=
${
this
.
inspectionCode
}
&location=
${
location
}
&uid=
${
this
.
uid
}
&backValue=
${
this
.
backValue
}
`
,
(
item
)
=>
item
.
createByName
==
userInfo
.
user
});
);
},
writeInspectionData
(
inspectList
,
userInfo
.
user
);
back
()
{
if
(
this
.
backValue
===
"home"
)
{
// 更新日志
uni
.
navigateTo
({
const
log_list
=
this
.
$store
.
state
.
log_list
;
url
:
"/pages/home/home"
,
logContent
.
inspectionType
=
params
.
inspectionType
;
});
log_list
.
push
(
logContent
);
}
else
{
this
.
$store
.
commit
(
"SET_LOG_LIST"
,
log_list
);
uni
.
navigateTo
({
addLog
(
log_list
).
then
((
res
)
=>
{
url
:
`/pages/inspectionManagement/index`
,
console
.
log
(
"日志文件写入成功"
);
});
});
}
if
(
type
===
"sign"
)
{
},
inspectApi
.
updateSignImg
({
openDialog
(
val
)
{
id
:
params
.
id
,
if
(
val
)
{
signImg
:
params
.
signImg
,
let
data
=
dataToSql
(
this
.
detailsInfo
)
synFlag
:
0
,
this
.
list
=
[{
isException
,
...
data
,
});
id
:
this
.
uid
}
}]
uni
.
showToast
({
}
else
{
title
:
type
==
"sign"
?
"签字成功"
:
"同步成功"
,
this
.
list
=
[]
icon
:
"success"
,
}
});
this
.
showSyncDialog
=
val
}
this
.
getActiveTabDetails
(
0
);
},
},
};
lookTable
()
{
</
script
>
uni
.
navigateTo
({
url
:
"/pages/report/sampleTable?isJF=0"
,
<
style
lang=
"less"
scoped
>
});
/* 导航栏样式 */
},
// 跳转到具体的井道
.nav-right {
toShaftInspection
(
value
,
dictValue
,
location
)
{
width: 192px;
uni
.
navigateTo
({
}
url
:
`/pages/shaftInspection/shaftInspectionNew?value=
${
value
}
&dictValue=
${
dictValue
}
&inspectionCode=
${
this
.
inspectionCode
}
&location=
${
location
}
&uid=
${
this
.
uid
}
&backValue=
${
this
.
backValue
}
`
,
});
.header-buttons {
},
display: flex;
back
()
{
align-items: center;
if
(
this
.
backValue
===
"home"
)
{
margin-left: auto; // 将按钮组推到最右侧
uni
.
navigateTo
({
url
:
"/pages/home/home"
,
.button {
});
width: 89.6px;
}
else
{
height: 28.8px;
uni
.
navigateTo
({
background: #ffffff;
url
:
`/pages/inspectionManagement/index`
,
border-radius: 14.4px;
});
margin-left: 12.8px;
}
font-family: PingFangSC-Regular;
},
font-size: 12.8px;
openDialog
(
val
)
{
color: #000000;
if
(
val
)
{
line-height: 28.8px;
let
data
=
dataToSql
(
this
.
detailsInfo
);
font-weight: 400;
this
.
list
=
[
text-align: center;
{
}
...
data
,
}
id
:
this
.
uid
,
},
.container {
];
background-image: linear-gradient(115deg, #e8f0fb 0%, #e1ebfa 100%);
}
else
{
padding: 0 25.6px;
this
.
list
=
[];
height: 100vh;
}
overflow: hidden;
this
.
showSyncDialog
=
val
;
},
.profile-section {
},
width: 100%;
};
margin-bottom: 12.8px;
</
script
>
.profile-box {
<
style
lang=
"less"
scoped
>
background-color: #fff;
/* 导航栏样式 */
border-radius: 9.6px;
padding: 12.8px 25.6px;
.nav-right {
display: flex;
width: 192px;
justify-content: space-between;
}
align-items: center;
.header-buttons {
.profile-left {
display: flex;
display: flex;
align-items: center;
align-items: center;
margin-left: auto; // 将按钮组推到最右侧
.avatar {
.button {
position: relative;
width: 89.6px;
width: 51.2px;
height: 28.8px;
height: 51.2px;
background: #ffffff;
border-radius: 50%;
border-radius: 14.4px;
overflow: hidden;
margin-left: 12.8px;
margin-right: 9.6px;
font-family: PingFangSC-Regular;
font-size: 12.8px;
image {
color: #000000;
width: 100%;
line-height: 28.8px;
height: 100%;
font-weight: 400;
}
text-align: center;
}
.change-password {
}
position: absolute;
bottom: 0;
.container {
left: 0;
background-image: linear-gradient(115deg, #e8f0fb 0%, #e1ebfa 100%);
right: 0;
padding: 0 25.6px;
background-color: rgba(0, 0, 0, 0.5);
height: 100vh;
text-align: center;
overflow: hidden;
height: 17.6px;
font-family: PingFangSC-Regular;
.profile-section {
font-size: 9.6px;
width: 100%;
color: #ffffff;
margin-bottom: 12.8px;
line-height: 16px;
font-weight: 400;
.profile-box {
}
background-color: #fff;
}
border-radius: 9.6px;
padding: 12.8px 25.6px;
.info {
display: flex;
margin-right: 9.6px;
justify-content: space-between;
.username {
align-items: center;
font-size: 16px;
color: #000000;
.profile-left {
line-height: 22.4px;
display: flex;
font-weight: 500;
align-items: center;
margin-bottom: 7.2px;
}
.avatar {
position: relative;
.number {
width: 51.2px;
font-size: 12.8px;
height: 51.2px;
color: #4a4a4a;
border-radius: 50%;
line-height: 22.4px;
overflow: hidden;
font-weight: 400;
margin-right: 9.6px;
.value {
image {
color: #000000;
width: 100%;
}
height: 100%;
}
}
}
}
.change-password {
position: absolute;
.profile-right {
bottom: 0;
display: flex;
left: 0;
right: 0;
.inspection-button {
background-color: rgba(0, 0, 0, 0.5);
width: 89.6px;
text-align: center;
height: 28.8px;
height: 17.6px;
background-image: linear-gradient(105deg, #68acfb 0%, #3774f6 100%);
font-family: PingFangSC-Regular;
border-radius: 14.4px;
font-size: 9.6px;
font-family: PingFangSC-Regular;
color: #ffffff;
font-size: 12.8px;
line-height: 16px;
color: #ffffff;
font-weight: 400;
line-height: 28.8px;
}
font-weight: 400;
}
margin-right: 12.8px;
}
.info {
margin-right: 9.6px;
.record-button {
.username {
width: 115.2px;
font-size: 16px;
height: 28.8px;
color: #000000;
background: #ffffff;
line-height: 22.4px;
border: 0.8px solid rgba(55, 116, 246, 1);
font-weight: 500;
border-radius: 14.4px;
margin-bottom: 7.2px;
font-family: PingFangSC-Regular;
}
font-size: 12.8px;
color: #3774f6;
.number {
line-height: 28.8px;
font-size: 12.8px;
font-weight: 400;
color: #4a4a4a;
}
line-height: 22.4px;
.action-container {
font-weight: 400;
display: flex;
.record-button.small {
.value {
width: 75px;
color: #000000;
margin-right: 10px;
}
}
}
.inspection-button {
}
display: flex;
}
align-items: center;
justify-content: center;
.profile-right {
width: 115.2px;
display: flex;
height: 28.8px;
color: #fff;
.inspection-button {
background-image: linear-gradient(180deg, #3773f6 0%, #2c57f6 99%);
width: 89.6px;
box-shadow: 0px 8px 19.2px 0px rgba(51, 104, 246, 0.24);
height: 28.8px;
border-radius: 14.4px;
background-image: linear-gradient(105deg, #68acfb 0%, #3774f6 100%);
}
border-radius: 14.4px;
.sign-img {
font-family: PingFangSC-Regular;
width: 80px;
font-size: 12.8px;
height: 28.8px;
color: #ffffff;
margin-right: 10px;
line-height: 28.8px;
border: 1px solid #ccc;
font-weight: 400;
// border-right: none;
margin-right: 12.8px;
border-radius: 3px;
}
}
}
.record-button {
}
width: 115.2px;
}
height: 28.8px;
}
background: #ffffff;
border: 0.8px solid rgba(55, 116, 246, 1);
/* 页面容器 */
border-radius: 14.4px;
.content-box {
font-family: PingFangSC-Regular;
width: 100%;
font-size: 12.8px;
height: calc(100vh - 190px);
color: #3774f6;
border-radius: 9.6px;
line-height: 28.8px;
overflow: hidden;
font-weight: 400;
background-color: #ffffff;
&.disabled-btn {
display: flex;
color: #c7c7c7;
border-color: #c7c7c7;
/* 左侧模块 */
}
.left-side {
}
width: 120px;
.action-container {
height: 100%;
display: flex;
background-color: #f9f9f9;
.record-button.small {
display: flex;
width: 75px;
flex-direction: column;
margin-right: 10px;
align-items: center;
}
padding-top: 12.8px;
.inspection-button {
display: flex;
.tab-item {
align-items: center;
width: 100%;
justify-content: center;
height: 38.4px;
width: 115.2px;
display: flex;
height: 28.8px;
align-items: center;
color: #fff;
justify-content: center;
background-image: linear-gradient(180deg, #3773f6 0%, #2c57f6 99%);
font-size: 12px;
box-shadow: 0px 8px 19.2px 0px rgba(51, 104, 246, 0.24);
color: #333333;
border-radius: 14.4px;
cursor: pointer;
}
.sign-img {
&.active {
width: 80px;
background-color: #ffffff;
height: 28.8px;
}
margin-right: 10px;
}
border: 1px solid #ccc;
}
// border-right: none;
border-radius: 3px;
/* 右侧模块 */
}
.right-side {
}
flex: 1;
}
padding: 12.8px 18.4px;
}
display: flex;
}
flex-direction: column;
/* 页面容器 */
.button-group {
.content-box {
display: flex;
width: 100%;
margin-bottom: 12.8px;
height: calc(100vh - 190px);
.button {
border-radius: 9.6px;
height: 27.2px;
overflow: hidden;
background-color: rgba(55, 116, 246, 0.08);
background-color: #ffffff;
display: flex;
display: flex;
align-items: center;
justify-content: center;
/* 左侧模块 */
font-size: 11.2px;
.left-side {
color: #3774f6;
width: 120px;
border-radius: 3.2px;
height: 100%;
background-color: #f9f9f9;
&:first-child {
display: flex;
width: 97.6px;
flex-direction: column;
font-size: 11.2px;
align-items: center;
color: #4a4a4a;
padding-top: 12.8px;
letter-spacing: 0;
font-weight: 400;
.tab-item {
.number {
width: 100%;
color: #000000;
height: 38.4px;
font-weight: 500;
display: flex;
}
align-items: center;
}
justify-content: center;
font-size: 12px;
&:last-child {
color: #333333;
flex: 1;
cursor: pointer;
margin-left: 9.6px;
padding: 0 9.6px;
&.active {
text-align: left;
background-color: #ffffff;
display: flex;
}
justify-content: flex-start;
}
font-size: 11.2px;
}
color: #4a4a4a;
letter-spacing: 0;
/* 右侧模块 */
font-weight: 400;
.right-side {
.icon-tixing {
flex: 1;
color: #3774f6;
padding: 12.8px 18.4px;
font-size: 9.6px;
display: flex;
margin-right: 6.4px;
flex-direction: column;
}
}
.button-group {
}
display: flex;
}
margin-bottom: 12.8px;
.button {
.card-box {
height: 27.2px;
overflow: auto;
background-color: rgba(55, 116, 246, 0.08);
display: flex;
.card-group {
align-items: center;
flex: 1;
justify-content: center;
font-size: 11.2px;
.card-title {
color: #3774f6;
font-size: 12.8px;
border-radius: 3.2px;
font-weight: bold;
color: #333333;
&:first-child {
margin: 12.8px 0;
width: 97.6px;
}
font-size: 11.2px;
color: #4a4a4a;
.card-list {
letter-spacing: 0;
display: flex;
font-weight: 400;
flex-wrap: wrap;
.number {
gap: 12.8px;
color: #000000;
font-weight: 500;
.card {
}
width: 105.6px;
}
height: 51.2px;
background-color: #f9f9f9;
&:last-child {
border-radius: 6.4px;
flex: 1;
padding: 6.4px 10.312px;
margin-left: 9.6px;
box-sizing: border-box;
padding: 0 9.6px;
&.status1 {
text-align: left;
background: #f3f7ff;
display: flex;
}
justify-content: flex-start;
&.status2 {
font-size: 11.2px;
background: #fff5f4;
color: #4a4a4a;
}
letter-spacing: 0;
font-weight: 400;
.card-content {
.icon-tixing {
display: flex;
color: #3774f6;
flex-direction: column;
font-size: 9.6px;
justify-content: space-between;
margin-right: 6.4px;
}
.status-line {
}
display: flex;
}
align-items: center;
}
margin-bottom: 3px;
.card-box {
.iconfont {
overflow: auto;
font-size: 12px;
margin-right: 6.4px;
.card-group {
&.icon-weixunjian {
flex: 1;
color: #959595;
}
.card-title {
&.icon-shibai1 {
font-size: 12.8px;
color: #ff4a34;
font-weight: bold;
}
color: #333333;
&.icon-wancheng {
margin: 12.8px 0;
color: #3774f6;
}
}
}
.card-list {
display: flex;
.status-text {
flex-wrap: wrap;
font-size: 12px;
gap: 12.8px;
color: #7c7c7c;
text-align: center;
.card {
line-height: 16.5px;
width: 105.6px;
font-weight: 400;
height: 51.2px;
}
background-color: #f9f9f9;
}
border-radius: 6.4px;
padding: 6.4px 10.312px;
.info-line {
box-sizing: border-box;
margin-left: 20px;
&.status1 {
font-size: 12px;
background: #f3f7ff;
color: #000000;
}
line-height: 16.5px;
&.status2 {
font-weight: 400;
background: #fff5f4;
}
}
}
}
.card-content {
}
display: flex;
}
flex-direction: column;
}
justify-content: space-between;
}
}
.status-line {
}
display: flex;
</
style
>
align-items: center;
margin-bottom: 3px;
.iconfont {
font-size: 12px;
margin-right: 6.4px;
&.icon-weixunjian {
color: #959595;
}
&.icon-shibai1 {
color: #ff4a34;
}
&.icon-wancheng {
color: #3774f6;
}
}
.status-text {
font-size: 12px;
color: #7c7c7c;
text-align: center;
line-height: 16.5px;
font-weight: 400;
}
}
.info-line {
margin-left: 20px;
font-size: 12px;
color: #000000;
line-height: 16.5px;
font-weight: 400;
}
}
}
}
}
}
}
}
}
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论