123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575 |
- <template>
- <div style="padding: 10px 15px">
- <div class="maintindetail">
- <div class="title">
- {{ facilitieinfo.name }}检测计划
- <div class="btngroup">
- <el-button
- type="primary"
- v-if="detectioninfo.status == 1"
- @click="showpf = true"
- >派 发</el-button
- >
- <el-button
- type="primary"
- v-if="detectioninfo.status == 2"
- @click="showzxfk = true"
- >执行反馈</el-button
- >
- <el-button
- type="primary"
- v-if="detectioninfo.status == 3"
- @click="showcgsc = true"
- >成果上传</el-button
- >
- <el-button
- type="danger"
- @click="
- () => {
- router.back();
- }
- "
- >返回</el-button
- >
- </div>
- </div>
- <div class="card">
- <div class="title" style="position: relative">设施信息</div>
- <div class="body">
- <el-row>
- <el-col :span="6">台账序号:{{ facilitieinfo.exId }}</el-col>
- <el-col :span="6">所在道路:{{ facilitieinfo.roadName }}</el-col>
- <el-col :span="6">性质:{{ facilitieinfo.nature }}</el-col>
- <el-col :span="6">运维长度:{{ facilitieinfo.fLength }}</el-col>
- <el-col :span="6">设施名称:{{ facilitieinfo.name }}</el-col>
- <el-col :span="18"
- >设施起止点:{{ facilitieinfo.addrFrom }}-{{
- facilitieinfo.addrEnd
- }}</el-col
- >
- </el-row>
- </div>
- </div>
- <div class="card">
- <div class="title" style="position: relative">
- 检测计划信息
- <div
- style="
- position: absolute;
- right: 10px;
- top: 0;
- color: #333;
- font-size: 20px;
- "
- >
- {{
- detection_status.filter(
- (i) => i.value.toString() === detectioninfo.status.toString()
- )[0]?.label ?? "-"
- }}
- </div>
- </div>
- <div class="body">
- <el-row>
- <el-col :span="6"
- >检测类型:{{
- detection_type.filter(
- (i) => i.value === detectioninfo.detectionType + ""
- )[0]?.label ?? "-"
- }}</el-col
- >
- <el-col :span="6">年计划:{{ detectioninfo.detectionYear }}</el-col>
- <el-col :span="6"
- >月计划:{{ detectioninfo.detectionMonth }}</el-col
- >
- <el-col :span="6">周计划:{{ detectioninfo.detectionWeek }}</el-col>
- <el-col :span="12"
- >计划作业班组:{{}}{{ alldept
- .filter(
- (i) =>
- (
- detectioninfo.detectionDept
- ).indexOf(i.deptId) != -1
- )
- .map((i) => i.deptName)
- .join(",")}}</el-col
- >
- <el-col :span="12"
- >计划备注:{{ detectioninfo.detectionDes }}</el-col
- >
- <el-col :span="24"
- >备注:{{ detectioninfo.detectionRemark }}</el-col
- >
- </el-row>
- </div>
- </div>
- <div class="card" v-if="detectioninfo.status > 1">
- <div class="title">派发信息</div>
- <div class="body">
- <el-row>
- <el-col :span="6"
- >负责人:{{
- allusers.filter(
- (i) =>
- i.userId.toString() ===
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 2
- )[0].logDes
- ).fzr.toString()
- )[0]?.nickName ?? "-"
- }}</el-col
- >
- <el-col :span="6"
- >联系方式:{{
- allusers.filter(
- (i) =>
- i.userId.toString() ===
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 2
- )[0].logDes
- ).fzr.toString()
- )[0]?.phonenumber ?? "-"
- }}</el-col
- >
- <el-col :span="6"
- >处置班组:{{
- alldept
- .filter(
- (i) =>
- (
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 2
- )[0].logDes
- ).fzbz ?? []
- ).indexOf(i.deptId) != -1
- )
- .map((i) => i.deptName)
- .join(",")
- }}</el-col
- >
- <el-col :span="6"
- >派发时间:{{
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 2
- )[0].createTime
- }}</el-col
- >
- </el-row>
- </div>
- </div>
- <div class="card" v-if="detectioninfo.status > 2">
- <div class="title" style="position: relative">执行反馈</div>
- <div class="body">
- <div class="titleheader" :style="`${'margin-top:0px'}`">
- {{ "作业组" }}
- </div>
- <div>
- <el-row>
- <el-col :span="6">
- 负责人:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.fzr
- }}
- </el-col>
- <el-col :span="6">
- 组员:
- {{
- allusers
- .filter(
- (i) =>
- (
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes
- ).gzz.zy ?? []
- ).indexOf(i.userId) != -1
- )
- .map((i) => i.nickName)
- .join(",")
- }}
- </el-col>
- <el-col :span="6">
- 人数:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.rs
- }}
- </el-col>
- <el-col :span="6">
- 开始时间:{{
- moment(JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.starttime).format("YYYY-MM-DD")}}
- </el-col>
- <el-col :span="6">
- 管线起点:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.addrstart
- }}
- </el-col>
- <el-col :span="6">
- 管线终点:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.addrend
- }}
- </el-col>
- <el-col :span="6">
- 城区:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.cq
- }}
- </el-col>
- <el-col :span="6">
- 结束时间:{{
- moment(JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.endtime).format("YYYY-MM-DD")
- }}
- </el-col>
- <el-col :span="6">
- 作业地址:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.addr
- }}
- </el-col>
- <el-col :span="6">
- 检测设备:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.jcsb
- }}
- </el-col>
- <el-col :span="6">
- 车辆:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.cars
- }}
- </el-col>
- <el-col :span="6">
- 车牌:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzz.carnumber
- }}
- </el-col>
- <el-col :span="12"> 作业照片: </el-col>
- <el-col :span="12"> 工作照片: </el-col>
- <el-col :span="12">
- <ImagePreview
- v-model:src="
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? '{}'
- ).gzz.zyimages
- "
- :height="'120px'"
- :width="'120px'"
- ></ImagePreview>
- </el-col>
- <el-col :span="12">
- <ImagePreview
- v-model:src="
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? '{}'
- ).gzz.gzimages
- "
- :height="'120px'"
- :width="'120px'"
- ></ImagePreview>
- </el-col>
- </el-row>
- </div>
- <div class="titleheader" :style="`${'margin-top:0px'}`">
- {{ "工作量" }}
- </div>
- <div>
- <el-row>
- <el-col :span="6"
- >检查井(座):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.jcj
- }}</el-col
- >
- <el-col :span="6"
- >雨水口(座):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.ysk
- }}</el-col
- >
- <el-col :span="6"
- >箅子(个):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.bz
- }}</el-col
- >
- <el-col :span="6"
- >主管(m):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.zg
- }}</el-col
- >
- <el-col :span="6"
- >接户管(m):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.jhg
- }}</el-col
- >
- <el-col :span="6"
- >雨水口支管(m):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.yskzg
- }}</el-col
- >
- <el-col :span="6"
- >总设施长度(m):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.zsscd
- }}</el-col
- >
- <el-col :span="6"
- >管径范围(mm):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.gjfw
- }}</el-col
- >
- <el-col :span="6"
- >备注:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.remark
- }}</el-col
- >
- <el-col :span="12"
- >未能作业原因:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.wnzyyy
- }}</el-col
- >
- <el-col :span="12"
- >备注:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? "{}"
- ).gzl.remark1
- }}</el-col
- >
- <el-col :span="24">现场照片:</el-col>
- <el-col :span="24"
- ><ImagePreview
- v-model:src="
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 3
- )[0].logDes ?? '{}'
- ).gzl.images
- "
- :height="'120px'"
- :width="'120px'"
- ></ImagePreview
- ></el-col>
- </el-row>
- </div>
- </div>
- </div>
- <div class="card" v-if="detectioninfo.status > 3">
- <div class="title" style="position: relative">检测成果</div>
- <div class="body">
- <div class="titleheader" :style="`${'margin-top:0px'}`">
- {{ "报告信息" }}
- </div>
- <div>
- <el-row>
- <el-col :span="6">
- 报告编号:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).bgxx.bgbh
- }}
- </el-col>
- <el-col :span="6">
- 城区:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).bgxx.cq
- }}
- </el-col>
- <el-col :span="6">
- 完成月份:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).bgxx.wcyf
- }}
- </el-col>
- <el-col :span="6">
- 备注:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).bgxx.bz
- }}
- </el-col>
- <el-col :span="12"> 作业图纸: </el-col>
- <el-col :span="12"> 收单方: </el-col>
- <el-col :span="12">
- <div style="position: relative">
- <div
- style="position: absolute; top: 0; left: 60px; width: 100%"
- >
- <div
- style="
- margin-bottom: 10px;
- color: #4f9eee;
- display: inline-block;
- margin-left: 10px;
- "
- v-for="i in JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? '{}'
- ).bgxx.tz?.split(',') ?? []"
- >
- <a target="_blank" :href="`${STATICURL + i}`">
- {{ i.split("/")[i.split("/").length - 1] }}
- </a>
- </div>
- </div>
- </div>
- </el-col>
- <el-col :span="12">
- <div style="position: relative">
- <div
- style="position: absolute; top: 0; left: 60px; width: 100%"
- >
- <div
- style="
- margin-bottom: 10px;
- color: #4f9eee;
- display: inline-block;
- margin-left: 10px;
- "
- v-for="i in JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? '{}'
- ).bgxx.sfd?.split(',') ?? []"
- >
- <a target="_blank" :href="`${STATICURL + i}`">
- {{ i.split("/")[i.split("/").length - 1] }}
- </a>
- </div>
- </div>
- </div>
- </el-col>
- <el-col :span="12"> 作业照片: </el-col>
- <el-col :span="12"> 作业视频: </el-col>
- <el-col :span="12">
- <ImagePreview
- v-model:src="
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? '{}'
- ).bgxx.zyzp
- "
- :height="'120px'"
- :width="'120px'"
- ></ImagePreview>
- </el-col>
- <el-col :span="12">
- <VideoPreview
- v-model:src="
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? '{}'
- ).bgxx.zysp
- "
- :height="'120px'"
- :width="'120px'"
- ></VideoPreview>
- </el-col>
- </el-row>
- </div>
- <div class="titleheader" :style="`${'margin-top:0px'}`">
- {{ "养护信息" }}
- </div>
- <div>
- <el-row>
- <el-col :span="24"
- >主管建议养护:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).yhxx.zgjyyh
- }}
- </el-col>
- <el-col :span="6"
- >涉及检查井座:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).yhxx.sjjcjz
- }}
- </el-col>
- <el-col :span="6"
- >养护长度(m):{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).yhxx.yhcd
- }}</el-col
- >
- <el-col :span="6"
- >管径范围:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).yhxx.gjfw
- }}</el-col>
- <el-col :span="24">主管缺陷分布图:</el-col>
- <el-col :span="24">
- <ImagePreview
- v-model:src="
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? '{}'
- ).yhxx.zgqxfbt
- "
- :height="'120px'"
- :width="'120px'"
- ></ImagePreview>
- </el-col>
- <el-col :span="24"
- >支管建议养护:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).yhxx.zgjyyh1
- }}
- </el-col>
- <el-col :span="6"
- >支管三四级缺陷个数:
- {{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).yhxx.zgqxssjs
- }}
- </el-col>
- <el-col :span="12"
- >养护备注:{{
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? "{}"
- ).yhxx.remark
- }}</el-col
- >
- <el-col :span="24">支管缺陷分布图:</el-col>
- <el-col :span="24">
- <ImagePreview
- v-model:src="
- JSON.parse(
- detectioninfo.detectionLogs.filter(
- (ii) => ii.detectionStatus === 4
- )[0].logDes ?? '{}'
- ).yhxx.zgqxfbt1
- "
- :height="'120px'"
- :width="'120px'"
- ></ImagePreview>
- </el-col>
- </el-row>
- </div>
- </div>
- </div>
- </div>
- <el-dialog v-model="showpf" title="计划派发" draggable>
- <div>
- <el-form :model="pdobj" label-width="120px">
- <el-form-item label="负责班组"
- ><el-tree-select
- style="width: 100%"
- v-model="pdobj.fzbz"
- multiple
- :data="treedept"
- /></el-form-item>
- <el-form-item label="负责人">
- <el-select
- v-model="pdobj.fzr"
- placeholder="请选择"
- style="width: 100%"
- >
- <el-option
- v-for="item in allusers.filter(
- (i) => (pdobj.fzbz ?? []).indexOf(i.deptId) !== -1
- )"
- :label="item.nickName"
- :value="item.userId"
- />
- </el-select>
- </el-form-item>
- </el-form>
- </div>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="showpf = false">取消</el-button>
- <el-button type="primary" @click="detectiondistributed"
- >确定</el-button
- >
- </span>
- </template>
- </el-dialog>
- <el-dialog v-model="showzxfk" title="计划执行反馈" draggable>
- <div>
- <el-form :model="zxfkobj" label-width="10px">
- <el-form-item label="">
- <el-tabs v-model="currenttabname" class="demo-tabs">
- <el-tab-pane label="作业组" name="zyz">
- <el-row>
- <el-col :span="6">
- <el-form-item label="负责人" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.fzr"
- placeholder="请输入负责人"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="组员" label-width="80px">
- <el-select
- v-model="zxfkobj.gzz.zy"
- multiple
- filterable
- allow-create
- default-first-option
- :reserve-keyword="false"
- placeholder="请输入组员"
- >
- <el-option
- v-for="item in allusers"
- :key="item.nickName"
- :label="item.nickName"
- :value="item.userId"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="人数" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.rs"
- type="number"
- placeholder="请输入人数"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="城区" label-width="80px">
- <el-select
- v-model="zxfkobj.gzz.cq"
- placeholder="请选择城区"
- >
- <el-option
- v-for="item in sys_area"
- :key="item.label"
- :label="item.label"
- :value="item.label"
- />
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="6">
- <el-form-item label="管线起点" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.addrstart"
- placeholder="请输入地址"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="管线终点" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.addrend"
- placeholder="请输入地址"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="开始时间" label-width="80px">
- <el-date-picker
- v-model="zxfkobj.gzz.starttime"
- type="date"
- format="YYYY-MM-DD"
- placeholder="请选择"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="结束时间" label-width="80px">
- <el-date-picker
- v-model="zxfkobj.gzz.endtime"
- type="date"
- format="YYYY-MM-DD"
- placeholder="请选择"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="6">
- <el-form-item label="作业地址" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.addr"
- placeholder="请输入地址"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="检测设备" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.jcsb"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车辆" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.cars"
- type="number"
- placeholder="请输入车辆数"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="车牌号" label-width="80px">
- <el-input
- v-model="zxfkobj.gzz.carnumber"
- placeholder="请输入车牌号"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="作业图片" label-width="80px">
- <ImageUpload v-model="zxfkobj.gzz.zyimages"></ImageUpload>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="工作图片" label-width="80px">
- <ImageUpload v-model="zxfkobj.gzz.gzimages"></ImageUpload>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- <el-tab-pane label="工作量" name="gzl">
- <el-row>
- <el-col :span="6">
- <el-form-item label="检查井(座)" label-width="80px">
- <el-input
- v-model="zxfkobj.gzl.jcj"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="雨水口(座)" label-width="80px">
- <el-input
- v-model="zxfkobj.gzl.ysk"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="箅子(个)" label-width="80px">
- <el-input
- v-model="zxfkobj.gzl.bz"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="主管(m)" label-width="80px">
- <el-input
- v-model="zxfkobj.gzl.zg"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col> </el-row
- ><el-row>
- <el-col :span="6">
- <el-form-item label="接户管(m)" label-width="80px">
- <el-input
- v-model="zxfkobj.gzl.jhg"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="雨水口支管(m)" label-width="120px">
- <el-input
- v-model="zxfkobj.gzl.yskzg"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="总设施长度(m)" label-width="120px">
- <el-input
- v-model="zxfkobj.gzl.zsscd"
- type="number"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="管径范围(mm)" label-width="120px">
- <el-input
- v-model="zxfkobj.gzl.gjfw"
- type="number"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col> </el-row
- ><el-row>
- <el-col :span="6">
- <el-form-item label="备注" label-width="80px">
- <el-input
- v-model="zxfkobj.gzl.remark"
- placeholder="请输入备注"
- ></el-input>
- </el-form-item>
- </el-col> </el-row
- ><el-row>
- <el-col :span="12">
- <el-form-item label="未能作业原因" label-width="100px">
- <el-input
- v-model="zxfkobj.gzl.wnzyyy"
- placeholder="请输入备注"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="备注" label-width="80px">
- <el-input
- v-model="zxfkobj.gzl.remark1"
- placeholder="请输入备注"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="现场图片" label-width="80px">
- <ImageUpload v-model="zxfkobj.gzl.images"></ImageUpload>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- </el-tabs>
- </el-form-item>
- </el-form>
- </div>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="showzxfk = false">取消</el-button>
- <el-button type="primary" @click="Feedbackdetection">确定</el-button>
- </span>
- </template>
- </el-dialog>
- <el-dialog v-model="showcgsc" width="80%" title="计划成果上传" draggable>
- <div>
- <el-form :model="cgscobj" label-width="10px">
- <el-form-item label="">
- <el-tabs v-model="currenttabname1" class="demo-tabs">
- <el-tab-pane label="报告信息" name="bgxx">
- <el-row>
- <el-col :span="6">
- <el-form-item label="报告编号" label-width="100px">
- <el-input
- v-model="cgscobj.bgxx.bgbh"
- placeholder="请输入编号"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="城区" label-width="80px">
- <el-select
- v-model="cgscobj.bgxx.cq"
- placeholder="请选择城区"
- >
- <el-option
- v-for="item in sys_area"
- :key="item.label"
- :label="item.label"
- :value="item.label"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="完成月份" label-width="80px">
- <el-select
- v-model="cgscobj.bgxx.wcyf"
- placeholder="请选择月份"
- >
- <el-option
- v-for="item in getmonth()"
- :key="item"
- :label="item"
- :value="item"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="备注" label-width="80px">
- <el-input
- v-model="cgscobj.bgxx.bz"
- type="number"
- placeholder="请输入备注"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="作业图纸" label-width="80px">
- <FileUpload
- v-model="cgscobj.bgxx.tz"
- :fileSize="100"
- ></FileUpload>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="收单方" label-width="80px">
- <FileUpload
- v-model="cgscobj.bgxx.sfd"
- :fileSize="100"
- ></FileUpload>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="作业照片" label-width="80px">
- <ImageUpload v-model="cgscobj.bgxx.zyzp"></ImageUpload>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="作业视频" label-width="80px">
- <VideoUpload v-model="cgscobj.bgxx.zysp"></VideoUpload>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- <el-tab-pane label="养护信息" name="yhxx">
- <el-row>
- <el-col :span="6">
- <el-form-item label="主管建议养护" label-width="100px">
- <el-input
- v-model="cgscobj.yhxx.zgjyyh"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="涉及检查井座" label-width="100px">
- <el-input
- v-model="cgscobj.yhxx.sjjcjz"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="养护长度(m)" label-width="100px">
- <el-input
- v-model="cgscobj.yhxx.yhcd"
- type="number"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="管径范围" label-width="80px">
- <el-input
- v-model="cgscobj.yhxx.gjfw"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="主管缺陷分布图" label-width="130px">
- <ImageUpload v-model="cgscobj.yhxx.zgqxfbt"></ImageUpload>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="6">
- <el-form-item label="支管建议养护" label-width="100px">
- <el-input
- v-model="cgscobj.yhxx.zgjyyh1"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="支管三四级缺陷个数" label-width="140px">
- <el-input
- v-model="cgscobj.yhxx.zgqxssjs"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="养护备注" label-width="100px">
- <el-input
- v-model="cgscobj.yhxx.remark"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="支管缺陷分布图" label-width="130px">
- <ImageUpload v-model="cgscobj.yhxx.zgqxfbt1"></ImageUpload>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- <el-tab-pane label="维修信息" name="wxxx">
- <el-row>
- <el-col :span="6">
- <el-form-item label="主管建议维修" label-width="120px">
- <el-input
- v-model="cgscobj.wxxx.zgjywx"
- type="number"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="主管三四级缺陷个数" label-width="140px">
- <el-input
- v-model="cgscobj.wxxx.zgqxssjs"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="管径范围" label-width="80px">
- <el-input
- v-model="cgscobj.wxxx.gjfw"
- type="number"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row><el-row>
- <el-col :span="24">
- <el-form-item label="主管结构类缺陷分布图" label-width="160px">
- <ImageUpload v-model="cgscobj.wxxx.zgjglqxfbt"></ImageUpload>
- </el-form-item>
- </el-col>
- </el-row><el-row>
- <el-col :span="6">
- <el-form-item label="支管建议维修" label-width="120px">
- <el-input
- v-model="cgscobj.wxxx.zgjywx1"
- type="number"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="支管三四级缺陷个数" label-width="140px">
- <el-input
- v-model="cgscobj.wxxx.zgqxssjs1"
- type="number"
- placeholder="请输入数量"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="维修备注" label-width="80px">
- <el-input
- v-model="cgscobj.wxxx.wxbz"
- type="number"
- placeholder="请输入"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row><el-row>
- <el-col :span="24">
- <el-form-item label="支管结构类缺陷分布图" label-width="160px">
- <ImageUpload v-model="cgscobj.wxxx.zgjglqxfbt1"></ImageUpload>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- </el-tabs>
- </el-form-item>
- </el-form>
- </div>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="showcgsc = false">取消</el-button>
- <el-button type="primary" @click="detectionComplete">确定</el-button>
- </span>
- </template>
- </el-dialog>
- </div>
- </template>
- <script lang="ts" setup>
- import { defineComponent, ref, onMounted, watch } from "vue";
- import { useDict } from "@/utils/dict";
- // 图片预览组件
- import ImagePreview from "@/components/ImagePreview";
- import ImageUpload from "@/components/ImageUpload";
- import FileUpload from "@/components/FileUpload";
- import VideoUpload from "@/components/VideoUpload";
- import VideoPreview from "@/components/VideoPreview";
- import { cloneDeep } from "lodash";
- import { listDept, getDept } from "@/api/system/dept";
- import { ElMessage } from "element-plus";
- import router from "../../../router";
- import { useRoute } from "vue-router";
- import { listFacilities, getFacilities } from "@/api/system/facilities";
- import {
- listDetection,
- addDetection,
- getDetection,
- distributedDetection,
- feedbackDetection,
- completeDetection,
- } from "@/api/system/detection";
- import {
- changeUserStatus,
- listUser,
- resetUserPwd,
- delUser,
- getUser,
- updateUser,
- addUser,
- } from "@/api/system/user";
- import { treeselect as deptTreeselect } from "@/api/system/dept";
- import moment from "moment";
- const { detection_status, detection_type, sys_area } = useDict(
- "detection_status",
- "detection_type",
- "sys_area"
- );
- const STATICURL = import.meta.env.VITE_APP_BASE_API;
- const route = useRoute();
- if (!route.params.id || route.params.id == "undefined") {
- router.back();
- }
- const currenttabname = ref("zyz");
- const currenttabname1 = ref("bgxx");
- const showzxfk = ref(false);
- const zxfkobj = ref({
- gzz: {
- fzr: "",
- zy: "",
- rs: 1,
- starttime: "",
- endtime: "",
- addrstart: "",
- addrend: "",
- cq: "",
- addr: "",
- jcsb: "",
- cars: "",
- carnumber: "",
- zyimages: [],
- gzimages: [],
- },
- gzl: {
- jcj: "",
- ysk: "",
- bz: "",
- zg: "",
- jhg: "",
- yskzg: "",
- zsscd: "",
- gjfw: "",
- remark: "",
- wnzyyy: "",
- remark1: "",
- images: [],
- },
- });
- const Feedbackdetection = () => {
- feedbackDetection({
- detectionId: route.params.id,
- logDes: JSON.stringify(zxfkobj.value),
- }).then((res) => {
- showzxfk.value = false;
- ElMessage.success("反馈成功!");
- getDetection(Number(route.params.id)).then((res) => {
- detectioninfo.value = res.data;
- });
- });
- };
- const showcgsc = ref(false);
- const cgscobj = ref({
- bgxx: {
- bgbh: "",
- cq: "",
- rs: 1,
- wcyf: "",
- bz: "",
- tz: [],
- sfd: [],
- zyzp: [],
- zysp: [],
- },
- yhxx: {
- zgjyyh: "",
- sjjcjz: "",
- yhcd: "",
- gjfw: "",
- whldfw: "",
- zgqxfbt: [],
- zgjyyh1: "",
- zgqxssjs: "",
- remark: "",
- zgqxfbt1: [],
- },
- wxxx: {
- zgjglqxfbt: [],
- zgjywx: "",
- zgqxssjs: "",
- gjfw: "",
- zgjywx1: "",
- zgqxssjs1:"",
- wxbz: '',
- zgjglqxfbt1:[],
- }
- });
- const detectionComplete = () => {
- completeDetection({
- detectionId: route.params.id,
- logDes: JSON.stringify(cgscobj.value),
- }).then((res) => {
- showcgsc.value = false;
- ElMessage.success("上传成功!");
- getDetection(Number(route.params.id)).then((res) => {
- detectioninfo.value = res.data;
- });
- });
- };
- const showpf = ref(false);
- const pdobj = ref({ fzbz: [], fzr: "" });
- const detectiondistributed = () => {
- distributedDetection({
- detectionId: route.params.id,
- logDes: JSON.stringify(pdobj.value),
- }).then((res) => {
- showpf.value = false;
- ElMessage.success("派发成功!");
- getDetection(Number(route.params.id)).then((res) => {
- detectioninfo.value = res.data;
- });
- });
- };
- const alldept = ref([]);
- listDept().then((response) => {
- alldept.value = cloneDeep(response.data);
- });
- function setdatakey(dept) {
- if (dept.children) {
- dept.children = dept.children.map((i) => {
- return setdatakey(i);
- });
- }
- dept["value"] = dept.id;
- return dept;
- }
- const treedept = ref([]);
- const allusers = ref([]);
- deptTreeselect().then((res) => {
- treedept.value = [setdatakey(res.data[0])];
- });
- const facilitieinfo = ref({
- addrEnd: "",
- addrFrom: "",
- areaAdDes: "",
- areaDes: "",
- createBy: null,
- createTime: null,
- exId: 1,
- exId1: "",
- ext1: null,
- fLength: "0",
- id: null,
- name: "",
- nature: "",
- params: {},
- remark: null,
- roadName: "",
- searchValue: null,
- updateBy: null,
- updateTime: null,
- });
- const detectioninfo = ref({
- createBy: "",
- createTime: null,
- detectionDept: "204,205",
- detectionDes: "sdfsd",
- detectionLogs: [],
- detectionMonth: "03",
- detectionRemark: "sdfsd",
- detectionType: 1,
- detectionWeek: "11",
- detectionYear: "2020",
- ext1: "",
- ext2: "",
- facilitiesId: 1,
- id: 3,
- params: {},
- remark: null,
- searchValue: null,
- status: 1,
- updateBy: "",
- updateTime: null,
- });
- const getmonth = () => {
- var months = [];
- for (var i = 0; i < 12; i++) {
- if (i < 9) {
- months.push("0" + (1 + i).toString());
- } else {
- months.push((1 + i).toString());
- }
- }
- return months;
- };
- onMounted(async () => {
- await listUser({ pageSize: 1000 }).then((res) => {
- allusers.value = res.rows;
- });
- getDetection(Number(route.params.id)).then((res) => {
- detectioninfo.value = res.data;
- if (Number(detectioninfo.value.status) > 1) {
- try {
- zxfkobj.value.gzz.fzr =
- allusers.value.filter(
- (i) =>
- i.userId.toString() ===
- JSON.parse(
- detectioninfo.value.detectionLogs.filter(
- (ii) => ii.detectionStatus === 2
- )[0].logDes
- ).fzr.toString()
- )[0]?.nickName ?? "-";
- } catch (e) {}
- }
- getFacilities(detectioninfo.value.facilitiesId).then((rep) => {
- facilitieinfo.value = rep.data;
- });
- });
- });
- </script>
- <style lang="scss">
- .demo-tabs {
- width: 100%;
- }
- .el-row {
- margin-bottom: 20px;
- }
- .maintindetail {
- background: #fff;
- padding: 30px 22px;
- border-radius: 8px;
- overflow-y: auto;
- padding-top: 20px;
- position: relative;
- .el-select {
- width: 100%;
- }
- .title {
- color: #2b3551;
- font-size: 16px;
- font-weight: 400;
- .btngroup {
- position: absolute;
- top: 13px;
- right: 20px;
- .el-button {
- margin-left: 25px;
- }
- }
- }
- .card {
- border: 1px solid #e5e9f2;
- border-radius: 8px;
- margin-top: 16px;
- overflow: hidden;
- .title {
- background: rgba(192, 204, 218, 0.2);
- height: 54px;
- line-height: 54px;
- color: #324057;
- font-size: 14px;
- font-weight: Bold;
- padding-left: 22px;
- }
- .body {
- padding: 20px;
- color: #475669;
- font-size: 14px;
- // padding-top: 10px;
- .el-col {
- margin-bottom: 20px;
- }
- .titleheader {
- color: #2c7de3;
- font-weight: Bold;
- margin-bottom: 24px;
- margin-top: 20px;
- }
- }
- }
- }
- </style>
|