index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924
  1. <template>
  2. <div class="testPersonExamine">
  3. <div class="testTit">
  4. <div class="teaLis">
  5. <div
  6. class="teal"
  7. @click="cutPage(2)"
  8. v-if="bArray.length"
  9. :class="[pType == 2 ? 'Tbor' : '']"
  10. >
  11. 专任教师
  12. </div>
  13. <div
  14. class="teal"
  15. @click="cutPage(1)"
  16. v-if="aArray.length"
  17. :class="[pType == 1 ? 'Tbor' : '']"
  18. >
  19. 班主任考核
  20. </div>
  21. </div>
  22. <div style="margin-right: 30px;display: flex;">
  23. <!-- <el-button
  24. type="primary"
  25. size="mini"
  26. style="margin-right: 15px;"
  27. @click="saveTab"
  28. v-if="allData.type == 1"
  29. >保存</el-button
  30. > -->
  31. <div style="margin: 0 20px;" v-if="timeListA.length>1 && pType == 1">
  32. <el-select v-model="timeA" placeholder="请选择">
  33. <el-option
  34. v-for="item in timeListA"
  35. :key="item.value"
  36. :label="item.label"
  37. :value="item.value"
  38. >
  39. </el-option>
  40. </el-select>
  41. </div>
  42. <div style="margin: 0 20px;" v-if="timeListB.length>1 && pType == 2">
  43. <el-select v-model="timeB" placeholder="请选择">
  44. <el-option
  45. v-for="item in timeListB"
  46. :key="item.value"
  47. :label="item.label"
  48. :value="item.value"
  49. >
  50. </el-option>
  51. </el-select>
  52. </div>
  53. <el-button
  54. v-if="allData.type != 2"
  55. type="primary"
  56. size="mini"
  57. @click="Submit"
  58. >提交</el-button
  59. >
  60. </div>
  61. </div>
  62. <div style="flex: 1;overflow: hidden;" class="notes">
  63. 注:评价积分周期为2023年6月30日至2024年6月30日
  64. </div>
  65. <div style="height:100%;overflow: auto;" v-loading="tabLoad">
  66. <div class="sBox_table">
  67. <div class="table_title">
  68. <div style="width: 110px;">一级指标</div>
  69. <div style="width: 140px;min-width: 140px;">二级指标</div>
  70. <div style="width: 700px;min-width: 700px;">评价方法</div>
  71. <div style="width: 100px;">分值</div>
  72. <div style="width: 100px;">自评</div>
  73. <div style="flex: 1;min-width: 150px;">自评概述</div>
  74. <div style="flex: 0.5;min-width: 100px;">数据来源</div>
  75. <!-- <div style="width: 100px;">认定</div>
  76. <div style="flex: 1;">认定概述</div> -->
  77. </div>
  78. <div style="height: 100%;">
  79. <div
  80. class="table_Content"
  81. v-for="item in PageBaseData"
  82. :key="item.id"
  83. >
  84. <div class="twoCol">
  85. <div class="ColTit">{{ item.name }}</div>
  86. <div class="ColCon">
  87. <div class="twoCon" v-for="k in item.children" :key="k.id">
  88. <div>{{ k.name }}</div>
  89. <div style="padding: 10px;box-sizing: border-box;">
  90. {{ k.evaMethod }}
  91. </div>
  92. <div>{{ k.score }}</div>
  93. <div>
  94. <div v-if="k.type == 1" class="ScoreStep">
  95. <el-input
  96. v-if="allData.type * 1 != 2"
  97. @blur="
  98. saveTab(
  99. k.sco1 > k.score
  100. ? (k.sco1 = k.score)
  101. : '' || k.sco1 < 0
  102. ? (k.sco1 = '')
  103. : ''
  104. )
  105. "
  106. v-model.number="k.sco1"
  107. v-stopMousewheel
  108. ></el-input>
  109. <div v-else>{{ k.sco1 }}</div>
  110. </div>
  111. <div v-else class="ScoreStep">/</div>
  112. </div>
  113. <div class="tArea">
  114. <div
  115. v-if="k.type == 1"
  116. style="height: 100%;height: 100%;width: 100%;text-align: left;"
  117. >
  118. <!-- <textarea
  119. v-if="allData.type * 1 != 2"
  120. @blur="saveTab"
  121. :placeholder="
  122. k.cueWordType == 1 ? '【自评后请简述测算过程】' : ''
  123. "
  124. v-model.trim="k.selfSummary"
  125. /> -->
  126. <el-input
  127. v-if="allData.type * 1 != 2"
  128. type="textarea"
  129. @blur="saveTab"
  130. :placeholder="
  131. k.cueWordType == 1 ? '【自评后请简述测算过程】' : ''
  132. "
  133. v-model="k.selfSummary"
  134. >
  135. </el-input>
  136. <div
  137. v-else
  138. style="width: 100%;padding: 5px;height: 100%;box-sizing: border-box;"
  139. >
  140. {{ k.selfSummary }}
  141. </div>
  142. </div>
  143. <div v-else class="ScoreStep">/</div>
  144. </div>
  145. <div>
  146. <div v-if="!k.testid.test.length">/</div>
  147. <div v-else style="padding-top: 10px;">
  148. <!-- {{ k.testid.test }} -->
  149. <div
  150. v-for="(item2, index) in k.testid.test"
  151. :key="item2.courseId"
  152. class="orgData"
  153. >
  154. <div @click="lookPrize(item2.courseId)">
  155. {{ item2.title }}:{{ item2.num }}份
  156. </div>
  157. <div
  158. style="color: black;"
  159. @click="goFillIn(item2.courseId)"
  160. >
  161. 去填写
  162. </div>
  163. </div>
  164. </div>
  165. </div>
  166. <!-- <div style="display: flex;justify-content: center;">
  167. {{ k.sco2 }}
  168. </div>
  169. <div style="display: flex;justify-content: center;">
  170. {{ k.cogSum }}
  171. </div> -->
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. <!-- 点击数据来源 -->
  180. <el-dialog
  181. title=""
  182. :visible.sync="diaIframe"
  183. :append-to-body="true"
  184. width="95%"
  185. :before-close="handleClose"
  186. class="dialog_diy"
  187. >
  188. <div style="height: 100%;">
  189. <iframe
  190. ref="viframe"
  191. style="width: 100%; height: 99%; border: none"
  192. :src="ifmUrl"
  193. ></iframe>
  194. </div>
  195. <span slot="footer" class="dialog-footer">
  196. <el-button @click="diaIframe = false">关 闭</el-button>
  197. </span>
  198. </el-dialog>
  199. </div>
  200. </template>
  201. <script>
  202. export default {
  203. directives: {
  204. stopMousewheel: {
  205. inserted: function(el) {
  206. const ele = el.tagName === "INPUT" ? el : el.querySelector("input");
  207. ele.addEventListener("mousewheel", () => {
  208. ele.blur();
  209. });
  210. }
  211. }
  212. },
  213. data() {
  214. return {
  215. pType: 2,
  216. allData: {
  217. type: 1,
  218. rjson: ""
  219. },
  220. // 页面填写数据
  221. tableJsonCon: [],
  222. // 页面基础ui
  223. PageBaseData: [],
  224. tabLoad: false, //表格加载状态
  225. userid: this.$route.query.userid, //用户id
  226. oid: this.$route.query.oid, //学校id
  227. org: this.$route.query.org, //组织id
  228. role: this.$route.query.role,
  229. ifmUrl: "", //数据来源地址
  230. diaIframe: false, //数据来源弹框
  231. aArray: [],
  232. bArray: [],
  233. timeListB:[],
  234. timeListA:[],
  235. timeA:"",
  236. timeB:"",
  237. testExamineBaseList:[],
  238. };
  239. },
  240. watch: {
  241. pType(newVal, oldVal) {
  242. this.getPageBase();
  243. },
  244. timeA(){
  245. this.getPageBase();
  246. },
  247. timeB(){
  248. this.getPageBase();
  249. }
  250. },
  251. computed: {},
  252. activated() {
  253. // 当组件被激活时调用
  254. this.getPageBase();
  255. this.getPageBase2(1)
  256. this.getPageBase2(2)
  257. },
  258. mounted() {
  259. this.getPageBase();
  260. this.getPageBase2(1)
  261. this.getPageBase2(2)
  262. // console.log(JSON.stringify(this.TeaTabJson));
  263. },
  264. methods: {
  265. // 禁用滚轮事件
  266. handleWheel(event) {
  267. event.preventDefault();
  268. },
  269. goFillIn(val) {
  270. this.$router.push(
  271. `/doTest?cid=${val}&org=${this.org}&type=3&role=${this.role}&isN=&oid=${this.oid}&userid=${this.userid}`
  272. );
  273. // this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}`;
  274. // this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/test?userid=${this.userid}&oid=45facc0a-1211-11ec-80ad-005056b86db5&org=&role=0`;
  275. // this.diaIframe = true;
  276. },
  277. // 提交
  278. Submit() {
  279. // if (this.allData.type == 2) {
  280. // this.$message({
  281. // type: "info",
  282. // message: "您已提交过,请勿重复提交"
  283. // });
  284. // return;
  285. // }
  286. let judgeNum = 0;
  287. // i.type == 1 这个用来判断 科组评价的因为最后两个教师不能打分所以type设为2,下面的循环将他们两个排除出去
  288. this.PageBaseData.forEach(e => {
  289. e.children.forEach(i => {
  290. if (i.type == 1) {
  291. if (!i.sco1) {
  292. judgeNum = 1;
  293. }
  294. if (i.sco1 * 1 < 0) {
  295. judgeNum = 2;
  296. }
  297. }
  298. });
  299. });
  300. if (judgeNum == 1) {
  301. this.$message({
  302. message: "请将【自评】分数列填写完整后再提交。",
  303. type: "warning"
  304. });
  305. return;
  306. }
  307. if (judgeNum == 2) {
  308. this.$message({
  309. message: "自评分数不可低于0,请检查后重新输入。",
  310. type: "warning"
  311. });
  312. return;
  313. }
  314. for (const e of this.PageBaseData) {
  315. for (const k of e.children) {
  316. if (k.testid.test.length > 0) {
  317. k.testid.test = k.testid.test.map(item => item.courseId);
  318. }
  319. }
  320. }
  321. this.$confirm("提交后无法修改,是否确定提交?", "提示", {
  322. confirmButtonText: "确定",
  323. cancelButtonText: "取消",
  324. type: "info"
  325. })
  326. .then(() => {
  327. let params = [
  328. {
  329. uid: this.userid,
  330. oid: this.oid,
  331. org: this.org,
  332. type: this.pType,
  333. json: JSON.stringify(this.PageBaseData),
  334. ttype: 2,
  335. tid:this.testExamineBaseList[0].id
  336. }
  337. ];
  338. this.ajax
  339. .post(this.$store.state.api + "addTestExamineWorks2", params)
  340. .then(res => {
  341. this.getData();
  342. })
  343. .catch(error => {
  344. console.log(error);
  345. });
  346. })
  347. .catch(() => {
  348. this.handleData();
  349. this.$message({
  350. type: "info",
  351. message: "已取消提交"
  352. });
  353. });
  354. },
  355. // 保存
  356. saveTab() {
  357. let PageBaseDataCopy = JSON.parse(JSON.stringify(this.PageBaseData));
  358. for (const e of PageBaseDataCopy) {
  359. for (const k of e.children) {
  360. if (k.testid.test.length > 0) {
  361. k.testid.test = k.testid.test.map(item => item.courseId);
  362. }
  363. }
  364. }
  365. let params = [
  366. {
  367. uid: this.userid,
  368. oid: this.oid,
  369. org: this.org,
  370. type: this.pType,
  371. json: JSON.stringify(PageBaseDataCopy),
  372. ttype: 1,
  373. tid:this.testExamineBaseList[0].id
  374. }
  375. ];
  376. // return console.log(params);
  377. this.ajax
  378. .post(this.$store.state.api + "addTestExamineWorks2", params)
  379. .then(res => {
  380. console.log("addTestExamineWorks2", res);
  381. // this.getData();
  382. // this.handleData();
  383. })
  384. .catch(error => {
  385. console.log(error);
  386. });
  387. },
  388. // 切换专任,班主任
  389. cutPage(e) {
  390. this.pType = e;
  391. },
  392. // 获取页面数据
  393. getData() {
  394. this.tabLoad = true;
  395. let params = {
  396. uid: this.userid,
  397. type: this.pType,
  398. tid:this.testExamineBaseList[0].id
  399. };
  400. this.ajax
  401. .get(this.$store.state.api + "getTestExamineByUserId2", params)
  402. .then(res => {
  403. console.log("getTestExamineByUserId", res);
  404. if (res.data[0].length > 0) {
  405. this.allData = res.data[0][0];
  406. let val = JSON.parse(res.data[0][0].json);
  407. this.PageBaseData.forEach(e => {
  408. val.forEach(i => {
  409. if (e.id == i.id) {
  410. e.children.forEach(a => {
  411. i.children.forEach(b => {
  412. if (a.id == b.id) {
  413. a.sco1 = b.sco1;
  414. a.sco2 = b.sco2;
  415. a.cogSum = b.cogSum;
  416. a.selfSummary = b.selfSummary;
  417. }
  418. });
  419. });
  420. }
  421. });
  422. });
  423. this.handleData();
  424. return (this.tabLoad = false);
  425. } else {
  426. this.allData.type = 1;
  427. this.allData.rjson = "";
  428. this.handleData();
  429. this.tabLoad = false;
  430. }
  431. // this.$forceUpdate();
  432. // else {
  433. // this.allData.type = 1;
  434. // this.getPageBase();
  435. // this.tabLoad = false;
  436. // }
  437. })
  438. .catch(error => {
  439. console.log(error);
  440. });
  441. },
  442. // 获取页面基础ui信息
  443. getPageBase() {
  444. let params = {
  445. typ: this.pType,
  446. org: this.org,
  447. oid: this.oid,
  448. time:this.pType==1?this.timeA:this.timeB
  449. };
  450. this.ajax
  451. .get(this.$store.state.api + "selectTestExamineBase2", params)
  452. .then(res => {
  453. // console.log("resresresres", res.data[0]);
  454. // this.allData = res.data[0][0];
  455. let testExamineBaseList = res.data[0];
  456. this.testExamineBaseList = testExamineBaseList;
  457. console.log("selectTestExamineBase", res.data[0][0]);
  458. this.PageBaseData = JSON.parse(res.data[0][0].json);
  459. // 先获取基础模板,然后再获取用户又没有填写过,填写过就开始循环赋值给基础模板,最后提交基础模板
  460. this.getData();
  461. // this.handleData();
  462. })
  463. .catch(error => {
  464. console.log(error);
  465. });
  466. },
  467. // 获取页面基础ui信息
  468. getPageBase2(type) {
  469. let params = {
  470. typ: type,
  471. org: this.org,
  472. oid: this.oid,
  473. time:type==1?this.timeA:this.timeB
  474. };
  475. this.ajax
  476. .get(this.$store.state.api + "selectTestExamineBase2", params)
  477. .then(res => {
  478. if(type == 1){
  479. this.aArray = res.data[0];
  480. this.timeListA = this.aArray.map(i=>{return {value:i.time,label:i.timeLabel}})
  481. if(this.timeListA.length>0)this.timeA = this.timeListA[0].value;
  482. }else {
  483. this.bArray = res.data[0];
  484. this.timeListB = this.bArray.map(i=>{return {value:i.time,label:i.timeLabel}})
  485. if(this.timeListB.length>0)this.timeB = this.timeListB[0].value;
  486. if(!this.bArray.length){
  487. this.pType = 1
  488. }
  489. }
  490. })
  491. .catch(error => {
  492. console.log(error);
  493. });
  494. },
  495. async handleData() {
  496. for (const e of this.PageBaseData) {
  497. for (const k of e.children) {
  498. if (k.testid.test.length > 0) {
  499. k.testid.test = await this.computedTest(k.testid.test);
  500. }
  501. }
  502. }
  503. },
  504. computedTest(val) {
  505. let params = [
  506. {
  507. uid: this.userid,
  508. testId: val.join(",")
  509. }
  510. ];
  511. return new Promise(resolve => {
  512. this.ajax
  513. .post(this.$store.state.api + "selectExamineTestName", params)
  514. .then(res => {
  515. resolve(res.data[0]);
  516. })
  517. .catch(error => {
  518. console.log(error);
  519. });
  520. });
  521. },
  522. // 查看数据来源
  523. lookPrize(val) {
  524. // return;
  525. this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}`;
  526. // this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/test?userid=${this.userid}&oid=45facc0a-1211-11ec-80ad-005056b86db5&org=&role=0`;
  527. this.diaIframe = true;
  528. },
  529. // 关闭弹框
  530. handleClose(done) {
  531. this.getPageBase();
  532. done();
  533. }
  534. }
  535. };
  536. </script>
  537. <style scoped>
  538. .testPersonExamine {
  539. width: 100%;
  540. min-width: calc(100px * 10);
  541. height: calc(100% - 20px);
  542. /* overflow-x: scroll; */
  543. /* overflow: auto; */
  544. display: flex;
  545. flex-direction: column;
  546. padding: 10px;
  547. box-sizing: border-box;
  548. background-color: #fff;
  549. margin: 10px 0;
  550. border-radius: 5px;
  551. }
  552. .tArea {
  553. /* box-sizing: border-box; */
  554. /* padding: 5px; */
  555. }
  556. .tArea > div > textarea {
  557. border: none;
  558. width: 100%;
  559. height: 100%;
  560. resize: none;
  561. box-sizing: border-box;
  562. padding: 5px;
  563. outline-style: none;
  564. }
  565. .tArea > div >>> .el-textarea {
  566. height: 100%;
  567. }
  568. .tArea > div >>> .el-textarea__inner {
  569. border: none !important;
  570. height: 100%;
  571. resize: none;
  572. }
  573. .testPersonExamine > .testTit {
  574. height: 100px;
  575. display: flex;
  576. justify-content: space-between;
  577. align-items: center;
  578. }
  579. .notes {
  580. color: #fb5a3f;
  581. font-weight: 600;
  582. font-size: 20px;
  583. }
  584. .ScoreStep {
  585. height: 100%;
  586. display: flex;
  587. width: 100%;
  588. text-align: center;
  589. align-items: center;
  590. justify-content: center;
  591. }
  592. .ScoreStep > input {
  593. height: 100% !important;
  594. outline-style: none;
  595. width: 100%;
  596. padding: 5px;
  597. text-align: center;
  598. box-sizing: border-box;
  599. border-radius: 4px;
  600. border: none !important;
  601. /* border: 1px solid #dcdfe6 !important; */
  602. }
  603. .teaLis {
  604. display: flex;
  605. }
  606. .teal {
  607. padding: 10px 20px;
  608. cursor: pointer;
  609. }
  610. .Tbor {
  611. border-bottom: 2px rgba(54, 129, 252, 1) solid;
  612. font-weight: 600;
  613. }
  614. .testCon {
  615. box-sizing: border-box;
  616. padding: 20px;
  617. }
  618. .orgData {
  619. cursor: pointer;
  620. color: #528df6;
  621. margin-bottom: 10px;
  622. }
  623. .diaScoreTop {
  624. display: flex;
  625. justify-content: space-between;
  626. height: 60px;
  627. }
  628. .diaScoreLeft {
  629. display: flex;
  630. justify-content: space-between;
  631. align-items: center;
  632. }
  633. .diaScoreLeft > div {
  634. margin-right: 30px;
  635. }
  636. .diaScoreRight {
  637. display: flex;
  638. justify-content: space-between;
  639. align-items: center;
  640. }
  641. .TabBtn {
  642. cursor: pointer;
  643. color: #528df6;
  644. }
  645. .sBox_table {
  646. width: 100%;
  647. min-width: 1300px;
  648. margin: 0 auto;
  649. height: 100%;
  650. box-sizing: border-box;
  651. padding-bottom: 60px;
  652. font-size: 14px;
  653. }
  654. .table_title {
  655. width: calc(100% - 6px);
  656. min-width: calc(110px * 9);
  657. height: 50px;
  658. background: #e0eafb;
  659. border: 1px solid #d5d8df;
  660. display: flex;
  661. flex-direction: row;
  662. flex-wrap: nowrap;
  663. align-items: center;
  664. }
  665. /* 容器不显示滚动条,但仍然可以滚动 */
  666. .container {
  667. overflow: auto;
  668. scrollbar-width: none; /* 对于Firefox */
  669. }
  670. /* 针对WebKit浏览器,比如Chrome和Safari,使滚动条不占据空间 */
  671. .container::-webkit-scrollbar {
  672. display: none; /* 隐藏滚动条 */
  673. }
  674. /* 针对IE和Edge,使滚动条不占据空间 */
  675. .container {
  676. -ms-overflow-style: none; /* IE 10+ */
  677. scrollbar-width: none; /* Firefox */
  678. }
  679. .table_title > div {
  680. /* width: calc(100% / 9); */
  681. min-width: 110px;
  682. box-sizing: border-box;
  683. text-align: center;
  684. height: 100%;
  685. line-height: 50px;
  686. border-right: 1px solid #d5d8df;
  687. border-left: 1px solid #d5d8df;
  688. background: #e0eafb;
  689. }
  690. /* .table_title2 {
  691. width: 100%;
  692. min-width: calc(110px * 8);
  693. height: 50px;
  694. background: #e0eafb;
  695. border: 1px solid #d5d8df;
  696. display: flex;
  697. flex-direction: row;
  698. flex-wrap: nowrap;
  699. align-items: center;
  700. }
  701. .table_title2 > div {
  702. width: calc(100% / 8);
  703. min-width: 110px;
  704. text-align: center;
  705. height: 100%;
  706. line-height: 50px;
  707. border-right: 1px solid #d5d8df;
  708. } */
  709. .table_title > div:last-child {
  710. border: none;
  711. }
  712. .table_Content {
  713. width: 100%;
  714. min-width: calc(110px * 9);
  715. /* border: 1px solid #d5d8df; */
  716. display: flex;
  717. flex-direction: row;
  718. flex-wrap: nowrap;
  719. text-align: center;
  720. align-items: center;
  721. }
  722. /* .table_Content2 {
  723. width: 100%;
  724. min-width: calc(110px * 8);
  725. border: 1px solid #d5d8df;
  726. display: flex;
  727. flex-direction: row;
  728. flex-wrap: nowrap;
  729. text-align: center;
  730. align-items: center;
  731. } */
  732. .twoCol {
  733. width: 100%;
  734. display: flex;
  735. }
  736. .ColTit {
  737. width: 110px !important;
  738. min-width: 110px;
  739. display: flex;
  740. justify-content: center;
  741. align-items: center;
  742. border-bottom: 1px #ccc solid;
  743. border-left: 1px solid #d5d8df;
  744. }
  745. /* 取消[type='number']的input的上下箭头 */
  746. input::-webkit-inner-spin-button {
  747. -webkit-appearance: none !important;
  748. }
  749. input::-webkit-outer-spin-button {
  750. -webkit-appearance: none !important;
  751. }
  752. input[type="number"] {
  753. -moz-appearance: textfield;
  754. }
  755. .twoCon {
  756. display: flex;
  757. width: 100%;
  758. }
  759. .twoCon > div {
  760. /* width: 10%; */
  761. min-width: 110px;
  762. min-height: 50px;
  763. /* line-height: 50px; */
  764. display: flex;
  765. box-sizing: border-box;
  766. justify-content: center;
  767. align-items: center;
  768. border-left: 1px #ccc solid;
  769. border-bottom: 1px #ccc solid;
  770. }
  771. .twoCon > div:nth-child(1) {
  772. width: 140px !important;
  773. }
  774. .twoCon > div:nth-child(2) {
  775. width: 700px !important;
  776. white-space: pre-line;
  777. word-break: break-all;
  778. text-align: left;
  779. justify-content:flex-start;
  780. /* background-color:red; */
  781. }
  782. .twoCon > div:nth-child(3) {
  783. width: 100px !important;
  784. }
  785. .twoCon > div:nth-child(4) {
  786. width: 100px !important;
  787. }
  788. .twoCon > div:nth-child(5) {
  789. flex: 1;
  790. min-width: 150px;
  791. }
  792. .twoCon > div:nth-child(6) {
  793. flex: 0.5;
  794. min-width: 100px;
  795. }
  796. .twoCon > div:nth-child(7) {
  797. width: 100px !important;
  798. }
  799. .twoCon > div:nth-child(8) {
  800. flex: 1;
  801. }
  802. /* .twoCon > div >>> .el-input-number {
  803. height: 100% !important;
  804. } */
  805. /* .twoCon > div >>> .el-input {
  806. height: 100% !important;
  807. } */
  808. .ScoreStep >>> .el-input-number {
  809. height: 100% !important;
  810. }
  811. .ScoreStep >>> .el-input {
  812. height: 100% !important;
  813. }
  814. .ScoreStep >>> .el-input__inner {
  815. height: 100%;
  816. padding-left: 15px;
  817. border: none;
  818. padding-right: 15px;
  819. }
  820. .twoCon > div > input {
  821. border: none;
  822. width: 100%;
  823. height: 100%;
  824. outline-style: none;
  825. text-align: center;
  826. }
  827. /* .twoCon > div >>> .el-input__inner {
  828. height: 100%;
  829. border: none;
  830. padding-left: 15px;
  831. padding-right: 15px;
  832. } */
  833. .ColCon {
  834. flex: 1;
  835. }
  836. .ColCon:nth-child(-1) > div {
  837. border-bottom: none;
  838. }
  839. .twoCon > div > textarea {
  840. border: none;
  841. width: 100%;
  842. height: 100%;
  843. resize: none;
  844. outline-style: none;
  845. }
  846. .dialog_diy >>> .el-dialog {
  847. height: 95%;
  848. margin: 0 auto !important;
  849. margin-top: 20px !important;
  850. overflow: hidden;
  851. }
  852. .dialog_diy >>> .el-dialog__header {
  853. background: #454545 !important;
  854. padding: 25px 20px;
  855. }
  856. .dialog_diy >>> .el-dialog__body {
  857. height: calc(100% - 50px);
  858. box-sizing: border-box;
  859. padding: 0px;
  860. }
  861. .dialog_diy >>> .el-dialog__title {
  862. color: #fff;
  863. }
  864. .dialog_diy >>> .el-dialog__headerbtn {
  865. top: 19px;
  866. }
  867. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close {
  868. color: #fff;
  869. }
  870. .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover {
  871. color: #fff;
  872. }
  873. .dialog_diy >>> .el-dialog__body,
  874. .dialog_diy >>> .el-dialog__footer {
  875. background: #fafafa;
  876. }
  877. </style>