|
@@ -3,28 +3,28 @@
|
|
|
<head>
|
|
|
<meta charset="UTF-8">
|
|
|
<title>抽查</title>
|
|
|
- <script src="/js/jquery.js"></script>
|
|
|
- <link href="/css/normalize.min.css" rel="stylesheet">
|
|
|
+ <script src="/js/jquery.js"></script>
|
|
|
+ <link href="/css/normalize.min.css" rel="stylesheet">
|
|
|
<link href="/css/animate.min.css" rel="stylesheet">
|
|
|
- <link rel="stylesheet" href="/css/zz.css">
|
|
|
+ <link rel="stylesheet" href="/css/zz.css">
|
|
|
<link rel="stylesheet" href="/css/index.css">
|
|
|
<script src="/js/vue.min.js"></script>
|
|
|
<script src="/js/index.js"></script>
|
|
|
<script src="/js/model.js"></script>
|
|
|
<style>
|
|
|
.add-tip {
|
|
|
- width: 24px;
|
|
|
- height: 22px;
|
|
|
- line-height: 22px;
|
|
|
- text-align: center;
|
|
|
- color: #fff;
|
|
|
- margin: 0;
|
|
|
- padding: 0;
|
|
|
- border: 1px solid #ccc;
|
|
|
- background-color: #fdfdfd;
|
|
|
+ width: 24px;
|
|
|
+ height: 22px;
|
|
|
+ line-height: 22px;
|
|
|
+ text-align: center;
|
|
|
+ color: #fff;
|
|
|
+ margin: 0;
|
|
|
+ padding: 0;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ background-color: #fdfdfd;
|
|
|
}
|
|
|
.info-box > * {
|
|
|
- cursor: pointer;
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
|
.button-group {
|
|
|
display: flex;
|
|
@@ -33,105 +33,107 @@
|
|
|
justify-content: space-between;
|
|
|
}
|
|
|
.button-group .info-box {
|
|
|
- margin-left: -60px;
|
|
|
+ margin-left: -60px;
|
|
|
}
|
|
|
.edit-box .edit.two .edit-title {
|
|
|
- padding-right: 4px;
|
|
|
+ padding-right: 4px;
|
|
|
}
|
|
|
.edit-box .edit .edit-input .label > span {
|
|
|
- max-width: unset;
|
|
|
- text-align: left;
|
|
|
- padding: 0 1em;
|
|
|
+ max-width: unset;
|
|
|
+ text-align: left;
|
|
|
+ padding: 0 1em;
|
|
|
}
|
|
|
.a-button {
|
|
|
- color: #4169e3;
|
|
|
- margin: 8px 15px;
|
|
|
- padding: 4px 10px;
|
|
|
+ color: #4169e3;
|
|
|
+ margin: 8px 15px;
|
|
|
+ padding: 4px 10px;
|
|
|
}
|
|
|
.button-box.delete-box {
|
|
|
- margin-right: 22px !important;
|
|
|
- margin-left: -419px !important;
|
|
|
+ margin-right: 22px !important;
|
|
|
+ margin-left: -419px !important;
|
|
|
}
|
|
|
.button-box.delete-box .pass {
|
|
|
- background-color: #f56c6c !important;
|
|
|
+ background-color: #f56c6c !important;
|
|
|
}
|
|
|
.pass.success {
|
|
|
- background-color: #09bb07 !important;
|
|
|
+ background-color: #09bb07 !important;
|
|
|
}
|
|
|
.pass.default {
|
|
|
- background-color: #adadad !important;
|
|
|
+ background-color: #adadad !important;
|
|
|
}
|
|
|
</style>
|
|
|
- <script>
|
|
|
-function prettyPrint(obj) {
|
|
|
- var ENDLINE = "\n";
|
|
|
- var COMMA_ENDLINE = ",\n";
|
|
|
- var OBJ_BEGIN = "{";
|
|
|
- var OBJ_END = "}";
|
|
|
- var ARR_BEGIN = "[";
|
|
|
- var ARR_END = "]";
|
|
|
- var INDNET_SPACES = 4;
|
|
|
+ <script>
|
|
|
+ function prettyPrint(obj) {
|
|
|
+ console.log(obj)
|
|
|
+ var ENDLINE = "\n";
|
|
|
+ var COMMA_ENDLINE = ",\n";
|
|
|
+ var OBJ_BEGIN = "{";
|
|
|
+ var OBJ_END = "}";
|
|
|
+ var ARR_BEGIN = "[";
|
|
|
+ var ARR_END = "]";
|
|
|
+ var INDNET_SPACES = 4;
|
|
|
|
|
|
- return (function innerPrettyPrint(obj, spaces) {
|
|
|
- var type = typeof obj;
|
|
|
+ return (function innerPrettyPrint(obj, spaces) {
|
|
|
+ var type = typeof obj;
|
|
|
+ console.log(obj,type)
|
|
|
+ if (type == "number" || type == "boolean") {
|
|
|
+ return obj.toString();
|
|
|
+ } else if (type == "string") {
|
|
|
+ if( obj!="" && !isNaN(Number(obj))){
|
|
|
+ return Number(obj)
|
|
|
+ }
|
|
|
+ return '"' + obj + '"';
|
|
|
+ } else {
|
|
|
+ var entries = [];
|
|
|
+ var thisIndent = ' '.repeat(spaces);
|
|
|
+ var subIndent = thisIndent + ' '.repeat(INDNET_SPACES);
|
|
|
+ var subSpaces = spaces + INDNET_SPACES;
|
|
|
|
|
|
- if (type == "number" || type == "boolean") {
|
|
|
- return obj.toString();
|
|
|
- } else if (type == "string") {
|
|
|
- if( obj!="" && !isNaN(Number(obj))){
|
|
|
- return Number(obj)
|
|
|
- }
|
|
|
- return '"' + obj + '"';
|
|
|
- } else {
|
|
|
- var entries = [];
|
|
|
- var thisIndent = ' '.repeat(spaces);
|
|
|
- var subIndent = thisIndent + ' '.repeat(INDNET_SPACES);
|
|
|
- var subSpaces = spaces + INDNET_SPACES;
|
|
|
-
|
|
|
- if (Object.prototype.toString.call(obj) == '[object Object]') {
|
|
|
- for(var k in obj) {
|
|
|
- entries.push('"' + k + '": ' + innerPrettyPrint(obj[k], subSpaces));
|
|
|
- }
|
|
|
+ if (Object.prototype.toString.call(obj) == '[object Object]') {
|
|
|
+ for(var k in obj) {
|
|
|
+ entries.push('"' + k + '": ' + innerPrettyPrint(obj[k], subSpaces));
|
|
|
+ }
|
|
|
|
|
|
- return OBJ_BEGIN + ENDLINE + subIndent + entries.join(COMMA_ENDLINE + subIndent) + ENDLINE + thisIndent + OBJ_END;
|
|
|
- } else if (Object.prototype.toString.call(obj) == '[object Array]') {
|
|
|
- obj.forEach(function(a) {
|
|
|
- entries.push(innerPrettyPrint(a, subSpaces));
|
|
|
- });
|
|
|
+ return OBJ_BEGIN + ENDLINE + subIndent + entries.join(COMMA_ENDLINE + subIndent) + ENDLINE + thisIndent + OBJ_END;
|
|
|
+ } else if (Object.prototype.toString.call(obj) == '[object Array]') {
|
|
|
+ obj.forEach(function(a) {
|
|
|
+ entries.push(innerPrettyPrint(a, subSpaces));
|
|
|
+ });
|
|
|
|
|
|
- return ARR_BEGIN + ENDLINE + subIndent + entries.join(COMMA_ENDLINE + subIndent) + ENDLINE + thisIndent + ARR_END;
|
|
|
- } else if (obj === null) {
|
|
|
- return "null";
|
|
|
- } else {
|
|
|
- return obj.toString();
|
|
|
+ return ARR_BEGIN + ENDLINE + subIndent + entries.join(COMMA_ENDLINE + subIndent) + ENDLINE + thisIndent + ARR_END;
|
|
|
+ } else if (obj === null) {
|
|
|
+ return "null";
|
|
|
+ } else {
|
|
|
+ return obj.toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })(obj, 0);
|
|
|
}
|
|
|
- }
|
|
|
- })(obj, 0);
|
|
|
- }
|
|
|
-</script>
|
|
|
+ </script>
|
|
|
</head>
|
|
|
<body>
|
|
|
<main id="app">
|
|
|
<div class="content" :class="{mm:showPop}">
|
|
|
<!--文章区-->
|
|
|
<div class="article" >
|
|
|
- <br><a href="{{.T.info.href}}" target="_blank">查看原文</a>
|
|
|
+ <h4>
|
|
|
+ 已验/总数:{{.T.checkednum}}/{{.T.allnum}}
|
|
|
+ </h4>
|
|
|
+ <hr style="border:1 double;" width="100%">
|
|
|
+ <br><a href="{{.T.info.href}}" target="_blank">查看原文</a>
|
|
|
<h3>{{.T.info.title}}</h3><br>
|
|
|
|
|
|
{{if .T.info.detail}}
|
|
|
- <div v-html="dataHtml">
|
|
|
- {{Html (Regexp (Regexp .T.info.detail "(`|\\n|\\\\n)\\s+" "\n") "(`|\\n|\\\\n)+" "<br/>")}}
|
|
|
- </div>
|
|
|
+ <div v-html="dataHtml"></div>
|
|
|
{{end}}
|
|
|
-
|
|
|
+
|
|
|
{{if .T.info.filetext}}
|
|
|
- <br><h3>附件内容</h3>
|
|
|
- <div>
|
|
|
- {{Html (Regexp (Regexp .T.info.filetext "(`|\\n|\\\\n)\\s+" "\n") "(`|\\n|\\\\n)+" "<br/>")}}
|
|
|
- </div>
|
|
|
+ <br><h3>附件内容</h3>
|
|
|
+ <div v-html="fileHtml"></div>
|
|
|
{{end}}
|
|
|
</div>
|
|
|
<!--操作区-->
|
|
|
+
|
|
|
<div class="operation">
|
|
|
<!--edit-box-->
|
|
|
<div class="edit-box">
|
|
@@ -141,161 +143,163 @@ function prettyPrint(obj) {
|
|
|
<div class="edit-title" @click="one.show = !one.show">
|
|
|
<span>[[one.title]]</span>
|
|
|
<div class="button-group">
|
|
|
- <div v-if="one.showCheck">
|
|
|
- <input :id="one.title" @click.stop type="checkbox" v-model="one.checkType">
|
|
|
- <label @click.stop :for="one.title">是否抽取</label>
|
|
|
- </div>
|
|
|
- <div class="button-box">
|
|
|
- <!--v-show="one.title == '基本字段'"-->
|
|
|
- <button class="pass success" @click.stop="saveDataOne(one,'1')" style="font-size: 14px;width: auto;float:left;">通过</button>
|
|
|
- <button class="pass default" @click.stop="saveDataOne(one,'-1')" style="font-size: 14px;width: auto;float:left">取消</button>
|
|
|
- <button class="pass" @click.stop="open(one, true)" style="font-size: 14px;width: auto;float:left">保存</button>
|
|
|
- </div>
|
|
|
- <!--<button class="add" v-show="one.title != '基本'" @click.stop="one.content.push(getTemp(2));goMark2(500)">+</button>-->
|
|
|
- <!--<button class="add" v-show="one.title == '基本'" @click.stop="one.content[0].content.push(getTemp(3));goMark2(60)">+</button>-->
|
|
|
- <div class="info-box" @click.stop v-show="one.showCheck">
|
|
|
- <div :class="{default: one.status == '-1'}" @click="setStatus(one,'-1')"></div>
|
|
|
- <!--<div :class="{ok: one.status == '1'}" @click="one.status = '1'"></div>-->
|
|
|
- <div :class="{ok: one.status == '1'}" @click="setStatus(one,'1')"></div>
|
|
|
- <!--<div :class="{err: one.status == '0'}" @click="one.status = '0'"></div>-->
|
|
|
- <el-popover trigger="click" >
|
|
|
- <div style="text-align: right; margin: 0">
|
|
|
- <el-button type="success" size="mini" @click="setStatus(one,'2')">新增</el-button>
|
|
|
- <el-button type="warning" size="mini" @click="setStatus(one,'3')">修改</el-button>
|
|
|
- <el-button type="danger" size="mini" @click="setStatus(one,'4')">删除</el-button>
|
|
|
- <!-- <el-button type="success" size="mini" @click="one.status = '2'">新增</el-button>
|
|
|
- <el-button type="warning" size="mini" @click="one.status = '3'">修改</el-button>
|
|
|
- <el-button type="danger" size="mini" @click="one.status = '4'">删除</el-button>-->
|
|
|
- </div>
|
|
|
- <div class="add-tip" slot="reference" :class="{err: (one.status != '1' && one.status != '-1')}">[[textMap[one.status] || '']]</div>
|
|
|
- </el-popover>
|
|
|
- </div>
|
|
|
-
|
|
|
+ <div v-if="one.showCheck">
|
|
|
+ <input :id="one.title" @click.stop type="checkbox" v-model="one.checkType">
|
|
|
+ <label @click.stop :for="one.title">是否抽取</label>
|
|
|
+ </div>
|
|
|
+ <div class="button-box">
|
|
|
+ <!--v-show="one.title == '基本字段'"-->
|
|
|
+ <button class="pass success" @click.stop="saveDataOne(one,'1')" style="font-size: 14px;width: auto;float:left;">通过</button>
|
|
|
+ <button class="pass default" @click.stop="saveDataOne(one,'-1')" style="font-size: 14px;width: auto;float:left">取消</button>
|
|
|
+ <!-- <button class="pass" @click.stop="open(one, true)" style="font-size: 14px;width: auto;float:left">保存</button>-->
|
|
|
+ </div>
|
|
|
+ <!--<button class="add" v-show="one.title != '基本'" @click.stop="one.content.push(getTemp(2));goMark2(500)">+</button>-->
|
|
|
+ <!--<button class="add" v-show="one.title == '基本'" @click.stop="one.content[0].content.push(getTemp(3));goMark2(60)">+</button>-->
|
|
|
+ <div class="info-box" @click.stop v-show="one.showCheck">
|
|
|
+ <div :class="{default: one.status == '-1'}" @click="setStatus(one,'-1')"></div>
|
|
|
+ <!--<div :class="{ok: one.status == '1'}" @click="one.status = '1'"></div>-->
|
|
|
+ <div :class="{ok: one.status == '1'}" @click="setStatus(one,'1')"></div>
|
|
|
+ <!--<div :class="{err: one.status == '0'}" @click="one.status = '0'"></div>-->
|
|
|
+ <el-popover trigger="click" >
|
|
|
+ <div style="text-align: right; margin: 0">
|
|
|
+ <el-button type="success" size="mini" @click="setStatus(one,'2')">新增</el-button>
|
|
|
+ <el-button type="warning" size="mini" @click="setStatus(one,'3')">修改</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="setStatus(one,'4')">删除</el-button>
|
|
|
+ <!-- <el-button type="success" size="mini" @click="one.status = '2'">新增</el-button>
|
|
|
+ <el-button type="warning" size="mini" @click="one.status = '3'">修改</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="one.status = '4'">删除</el-button>-->
|
|
|
+ </div>
|
|
|
+ <div class="add-tip" slot="reference" :class="{err: (one.status != '1' && one.status != '-1')}">[[textMap[one.status] || '']]</div>
|
|
|
+ </el-popover>
|
|
|
+ </div>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
<transition tag="div">
|
|
|
- <div>
|
|
|
- <div class="button-box" v-if="one.showCheck&&one.show">
|
|
|
- <button class="pass a-button" @click.stop="addChild(one)" style="font-size: 14px;width: auto;float:left;">新增子包</button>
|
|
|
- </div>
|
|
|
- <div class="edit-content" :class="{t:one.title == '基本字段'}" v-show="one.show">
|
|
|
- <!--two-->
|
|
|
-
|
|
|
- <span v-show="one.content.length === 0">当前您还没有添加子包</span>
|
|
|
- <div class="edit two" v-for="(two,index) in one.content" :key="index">
|
|
|
- <div class="edit-title" v-if="two.title" @click="two.show = !two.show">
|
|
|
- <span>[[two.title]]</span>
|
|
|
- <div class="button-box">
|
|
|
- <button class="pass success" @click.stop="saveDataTwo(two,'1')" style="font-size: 14px;width: auto;float:left;">通过</button>
|
|
|
- <button class="pass default" @click.stop="saveDataTwo(two,'-1')" style="font-size: 14px;width: auto;float:left">取消</button>
|
|
|
- </div>
|
|
|
- <div class="button-box delete-box" v-show="two.isNew">
|
|
|
- <button class="pass" @click.stop="delNewTwo(one, index)">删除</button>
|
|
|
+ <div>
|
|
|
+ <div class="button-box" v-if="one.showCheck&&one.show">
|
|
|
+ <button class="pass a-button" @click.stop="addChild(one)" style="font-size: 14px;width: auto;float:left;">新增[[one.title]]</button>
|
|
|
+ </div>
|
|
|
+ <div class="edit-content" :class="{t:one.title == '基本字段'}" v-show="one.show">
|
|
|
+ <!--two-->
|
|
|
+
|
|
|
+ <span v-show="one.content.length === 0">当前您还没有添加子包</span>
|
|
|
+ <div class="edit two" v-for="(two,index) in one.content" :key="index">
|
|
|
+ <div class="edit-title" v-if="two.title" @click="two.show = !two.show">
|
|
|
+ <span>[[two.title]]</span>
|
|
|
+ <div class="button-box">
|
|
|
+ <button class="pass success" @click.stop="saveDataTwo(two,'1',one)" style="font-size: 14px;width: auto;float:left;">通过</button>
|
|
|
+ <button class="pass default" @click.stop="saveDataTwo(two,'-1',one)" style="font-size: 14px;width: auto;float:left">取消</button>
|
|
|
+ </div>
|
|
|
+ <div class="button-box delete-box">
|
|
|
+ <button class="pass" @click.stop="delNewTwo(one, index, two)">删除</button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <transition tag="div" v-show="two.show">
|
|
|
- <div class="edit-content" v-show="two.show">
|
|
|
- <!--input-->
|
|
|
- <div class="edit-input">
|
|
|
- <div v-for="uin of two.uInput" class="input-box" :key="uin.title">
|
|
|
- <div class="label" v-if="uin.selectArr">
|
|
|
- <span>[[uin.title]] : </span>
|
|
|
- <select v-model="uin.select">
|
|
|
- <option disabled value="">请选择</option>
|
|
|
- <option v-for="o in uin.selectArr">[[o]]</option>
|
|
|
- </select>
|
|
|
- <div class="info-box">
|
|
|
- <div :class="{default: uin.status == '-1'}" @click="setStatus(uin,'-1')"></div>
|
|
|
- <div :class="{ok: uin.status == '1'}" @click="setStatus(uin,'1')"></div>
|
|
|
- <!--<div :class="{err: uin.status == '0'}" @click="uin.status = '0'"></div>-->
|
|
|
- <el-popover trigger="click" >
|
|
|
- <div style="text-align: right; margin: 0">
|
|
|
- <el-button type="success" size="mini" @click="setStatus(uin,'2')">新增</el-button>
|
|
|
- <el-button type="warning" size="mini" @click="setStatus(uin,'3')">修改</el-button>
|
|
|
- <el-button type="danger" size="mini" @click="setStatus(uin,'4')">删除</el-button>
|
|
|
- </div>
|
|
|
- <div class="add-tip" slot="reference" :class="{err: (uin.status != '1' && uin.status != '-1')}">[[textMap[uin.status] || '']]</div>
|
|
|
- </el-popover>
|
|
|
+ <transition tag="div">
|
|
|
+ <div class="edit-content" v-show="two.show">
|
|
|
+ <!--input-->
|
|
|
+ <div class="edit-input">
|
|
|
+ <div v-for="uin of two.uInput" class="input-box" :key="uin.title">
|
|
|
+ <div class="label" v-if="uin.selectArr">
|
|
|
+ <span>[[uin.title]] : </span>
|
|
|
+ <select v-model="uin.select">
|
|
|
+ <option disabled value="">请选择</option>
|
|
|
+ <option v-for="o in uin.selectArr">[[o]]</option>
|
|
|
+ </select>
|
|
|
+ <div class="info-box">
|
|
|
+ <div :class="{default: uin.status == '-1'}" @click="setStatus(uin,'-1', two, one)"></div>
|
|
|
+ <div :class="{ok: uin.status == '1'}" @click="setStatus(uin,'1', two, one)"></div>
|
|
|
+ <!--<div :class="{err: uin.status == '0'}" @click="uin.status = '0'"></div>-->
|
|
|
+ <el-popover trigger="click" >
|
|
|
+ <div style="text-align: right; margin: 0">
|
|
|
+ <el-button type="success" size="mini" @click="setStatus(uin,'2', two, one)">新增</el-button>
|
|
|
+ <el-button type="warning" size="mini" @click="setStatus(uin,'3', two, one)">修改</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="setStatus(uin,'4', two, one)">删除</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="add-tip" slot="reference" :class="{err: (uin.status != '1' && uin.status != '-1')}">[[textMap[uin.status] || '']]</div>
|
|
|
+ </el-popover>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="label" v-else :title="uin.input">
|
|
|
+ <span @click="goText(uin.title)">[[uin.title]] : </span>
|
|
|
+ <input type="text" v-model="uin.input" @click="goText(uin.input)">
|
|
|
+ <div class="info-box">
|
|
|
+ <div :class="{default: uin.status == '-1'}" @click="setStatus(uin,'-1', two, one)"></div>
|
|
|
+ <div :class="{ok: uin.status == '1'}" @click="setStatus(uin,'1', two, one)"></div>
|
|
|
+ <!--<div :class="{err: uin.status == '0'}" @click="uin.status = '0'"></div>-->
|
|
|
+ <el-popover trigger="click" >
|
|
|
+ <div style="text-align: right; margin: 0">
|
|
|
+ <el-button type="success" size="mini" @click="setStatus(uin,'2', two, one)">新增</el-button>
|
|
|
+ <el-button type="warning" size="mini" @click="setStatus(uin,'3', two, one)">修改</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="setStatus(uin,'4', two, one)">删除</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="add-tip" slot="reference" :class="{err: (uin.status != '1' && uin.status != '-1')}">[[textMap[uin.status] || '']]</div>
|
|
|
+ </el-popover>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="label" v-else>
|
|
|
- <span @click="goText(uin.title)">[[uin.title]] : </span>
|
|
|
- <input type="text" v-model="uin.input" @click="goText(uin.input)">
|
|
|
- <div class="info-box">
|
|
|
- <div :class="{default: uin.status == '-1'}" @click="setStatus(uin,'-1')"></div>
|
|
|
- <div :class="{ok: uin.status == '1'}" @click="setStatus(uin,'1')"></div>
|
|
|
- <!--<div :class="{err: uin.status == '0'}" @click="uin.status = '0'"></div>-->
|
|
|
+ </div>
|
|
|
+ <!--three-->
|
|
|
+ <!--<div>
|
|
|
+ <div class="edit-title" v-show="one.title == '基本字段'">
|
|
|
+ <span>候选人</span>
|
|
|
+ <div class="info-box" >
|
|
|
+ <div :class="{default: two.wstatus == '-1'}" @click="two.wstatus = '-1'"></div>
|
|
|
+ <div :class="{ok: two.wstatus == '1'}" @click="two.wstatus = '1'"></div>
|
|
|
<el-popover trigger="click" >
|
|
|
<div style="text-align: right; margin: 0">
|
|
|
- <el-button type="success" size="mini" @click="setStatus(uin,'2')">新增</el-button>
|
|
|
- <el-button type="warning" size="mini" @click="setStatus(uin,'3')">修改</el-button>
|
|
|
- <el-button type="danger" size="mini" @click="setStatus(uin,'4')">删除</el-button>
|
|
|
+ <el-button type="success" size="mini" @click="two.wstatus = '2'">新增</el-button>
|
|
|
+ <el-button type="warning" size="mini" @click="two.wstatus = '3'">修改</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="two.wstatus = '4'">删除</el-button>
|
|
|
</div>
|
|
|
- <div class="add-tip" slot="reference" :class="{err: (uin.status != '1' && uin.status != '-1')}">[[textMap[uin.status] || '']]</div>
|
|
|
+ <div class="add-tip" slot="reference" :class="{err: (two.wstatus != '1' && two.wstatus != '-1')}">[[textMap[two.wstatus] || '']]</div>
|
|
|
</el-popover>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!--three-->
|
|
|
- <!--<div>
|
|
|
- <div class="edit-title" v-show="one.title == '基本字段'">
|
|
|
- <span>候选人</span>
|
|
|
- <div class="info-box" >
|
|
|
- <div :class="{default: two.wstatus == '-1'}" @click="two.wstatus = '-1'"></div>
|
|
|
- <div :class="{ok: two.wstatus == '1'}" @click="two.wstatus = '1'"></div>
|
|
|
- <el-popover trigger="click" >
|
|
|
- <div style="text-align: right; margin: 0">
|
|
|
- <el-button type="success" size="mini" @click="two.wstatus = '2'">新增</el-button>
|
|
|
- <el-button type="warning" size="mini" @click="two.wstatus = '3'">修改</el-button>
|
|
|
- <el-button type="danger" size="mini" @click="two.wstatus = '4'">删除</el-button>
|
|
|
- </div>
|
|
|
- <div class="add-tip" slot="reference" :class="{err: (two.wstatus != '1' && two.wstatus != '-1')}">[[textMap[two.wstatus] || '']]</div>
|
|
|
- </el-popover>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="edit three" v-for="(three,index) in two.content" :key="index">
|
|
|
- <div class="edit-title" @click="three.show = !three.show">
|
|
|
- <span>[[three.title]]</span>
|
|
|
- </div>
|
|
|
- <div class="edit-content" v-show="three.show">
|
|
|
- <div class="edit-input">
|
|
|
- <div class="input-box" v-for="(threeUin,index) in three.uInput" :key="threeUin.title">
|
|
|
- <div class="label">
|
|
|
- <span @click="goText(threeUin.title)">[[threeUin.title]] : </span>
|
|
|
- <input type="text" v-model="threeUin.input" @click="goText(threeUin.input)">
|
|
|
- <div class="info-box">
|
|
|
- <div :class="{default: threeUin.status == '-1'}" @click="threeUin.status = '-1'"></div>
|
|
|
- <div :class="{ok: threeUin.status == '1'}" @click="threeUin.status = '1'"></div>
|
|
|
- <el-popover trigger="click" >
|
|
|
- <div style="text-align: right; margin: 0">
|
|
|
- <el-button type="success" size="mini" @click="threeUin.status = '2'">新增</el-button>
|
|
|
- <el-button type="warning" size="mini" @click="threeUin.status = '3'">修改</el-button>
|
|
|
- <el-button type="danger" size="mini" @click="threeUin.status = '4'">删除</el-button>
|
|
|
+ <div class="edit three" v-for="(three,index) in two.content" :key="index">
|
|
|
+ <div class="edit-title" @click="three.show = !three.show">
|
|
|
+ <span>[[three.title]]</span>
|
|
|
+ </div>
|
|
|
+ <div class="edit-content" v-show="three.show">
|
|
|
+ <div class="edit-input">
|
|
|
+ <div class="input-box" v-for="(threeUin,index) in three.uInput" :key="threeUin.title">
|
|
|
+ <div class="label">
|
|
|
+ <span @click="goText(threeUin.title)">[[threeUin.title]] : </span>
|
|
|
+ <input type="text" v-model="threeUin.input" @click="goText(threeUin.input)">
|
|
|
+ <div class="info-box">
|
|
|
+ <div :class="{default: threeUin.status == '-1'}" @click="threeUin.status = '-1'"></div>
|
|
|
+ <div :class="{ok: threeUin.status == '1'}" @click="threeUin.status = '1'"></div>
|
|
|
+ <el-popover trigger="click" >
|
|
|
+ <div style="text-align: right; margin: 0">
|
|
|
+ <el-button type="success" size="mini" @click="threeUin.status = '2'">新增</el-button>
|
|
|
+ <el-button type="warning" size="mini" @click="threeUin.status = '3'">修改</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="threeUin.status = '4'">删除</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="add-tip" slot="reference" :class="{err: (threeUin.status != '1' && threeUin.status != '-1')}">[[textMap[threeUin.status] || '']]</div>
|
|
|
+ </el-popover>
|
|
|
</div>
|
|
|
- <div class="add-tip" slot="reference" :class="{err: (threeUin.status != '1' && threeUin.status != '-1')}">[[textMap[threeUin.status] || '']]</div>
|
|
|
- </el-popover>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>-->
|
|
|
-
|
|
|
- </div>
|
|
|
- </transition>
|
|
|
+ </div>-->
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </transition>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
</transition>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="save-box">
|
|
|
- <button class="code" @click.stop="showPop = true" style="width:100px">源码</button>
|
|
|
- <button class="code" @click.stop="open('', false)" style="width:100px">保存</button>
|
|
|
- <button class="code" @click.stop="window.location.href='/'" style="width:100px">下一条</button>
|
|
|
- <!--<button class="code" @click.stop="window.location.href='/'" style="width:100px">下一条</button>-->
|
|
|
+ <!--<button class="code" @click.stop="showPop = true" style="width:100px">源码</button> -->
|
|
|
+ <button class="code" @click.stop="open(1)" style="width:100px">全部验证</button>
|
|
|
+ <button class="code" @click.stop="open(2)" style="width:100px">字段验证</button>
|
|
|
+<!-- <button class="code" @click.stop="open('', false)" style="width:100px">保存</button> -->
|
|
|
+ <button class="code" @click.stop="openHref" style="width:100px">下一条</button>
|
|
|
+ <!--<button class="code" @click.stop="window.location.href='/'" style="width:100px">下一条</button>-->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -319,140 +323,146 @@ function prettyPrint(obj) {
|
|
|
|
|
|
</body>
|
|
|
<script>
|
|
|
-//基本信息
|
|
|
-var common={{.T.common}}
|
|
|
-var uInput=[];
|
|
|
-for(k in common){
|
|
|
- var tmp={}
|
|
|
- tmp.title=common[k].descript
|
|
|
- tmp.input=common[k].value
|
|
|
- tmp.key=common[k].key
|
|
|
- if(common[k].key=="attach_discern"){
|
|
|
- tmp.select=common[k].value
|
|
|
- tmp.selectArr=['识别有效','识别无效']
|
|
|
- }
|
|
|
- if(common[k].key=="attach_ext"){
|
|
|
- tmp.select=common[k].value
|
|
|
- tmp.selectArr=['抽取正确','抽取错误']
|
|
|
- }
|
|
|
- tmp.status=common[k].status
|
|
|
- uInput[k]=tmp
|
|
|
-}
|
|
|
-//时间地点
|
|
|
-var timeplace={{.T.timeplace}}
|
|
|
-var tpInput=[];
|
|
|
-for(k in timeplace){
|
|
|
- var tmp={}
|
|
|
- tmp.title=timeplace[k].descript
|
|
|
- tmp.input=timeplace[k].value
|
|
|
- tmp.key=timeplace[k].key
|
|
|
- tmp.status=timeplace[k].status
|
|
|
- tpInput[k]=tmp
|
|
|
-}
|
|
|
+ //记录是否点击保存
|
|
|
+ var issave = false;
|
|
|
+ var _id = {{.T.info._id}};
|
|
|
+ var nextid = {{.T.nextid}};
|
|
|
+ //基本信息
|
|
|
+ var common={{.T.common}};
|
|
|
+ var uInput=[];
|
|
|
+ for(k in common){
|
|
|
+ var tmp={}
|
|
|
+ tmp.title=common[k].descript
|
|
|
+ tmp.input=common[k].value
|
|
|
+ tmp.key=common[k].key
|
|
|
+ if(common[k].key=="attach_discern"){
|
|
|
+ tmp.select=common[k].value
|
|
|
+ tmp.selectArr=['识别有效','识别无效']
|
|
|
+ }
|
|
|
+ if(common[k].key=="attach_ext"){
|
|
|
+ tmp.select=common[k].value
|
|
|
+ tmp.selectArr=['抽取正确','抽取错误']
|
|
|
+ }
|
|
|
+ tmp.status=common[k].status
|
|
|
+ uInput[k]=tmp
|
|
|
+ }
|
|
|
+ //时间地点
|
|
|
+ var timeplace={{.T.timeplace}}
|
|
|
+ var tpInput=[];
|
|
|
+ for(k in timeplace){
|
|
|
+ var tmp={}
|
|
|
+ tmp.title=timeplace[k].descript
|
|
|
+ tmp.input=timeplace[k].value
|
|
|
+ tmp.key=timeplace[k].key
|
|
|
+ tmp.status=timeplace[k].status
|
|
|
+ tpInput[k]=tmp
|
|
|
+ }
|
|
|
|
|
|
-//其他信息
|
|
|
-var other={{.T.other}}
|
|
|
-var otherInput=[];
|
|
|
-for(k in other){
|
|
|
- var tmp={}
|
|
|
- tmp.title=other[k].descript
|
|
|
- tmp.input=other[k].value
|
|
|
- tmp.key=other[k].key
|
|
|
- tmp.status=other[k].status
|
|
|
- if(other[k].key=="isppp"||other[k].key=="contract_guarantee"||other[k].key=="bid_guarantee"){
|
|
|
- tmp.select=other[k].value
|
|
|
- tmp.selectArr=['是','否']
|
|
|
- }
|
|
|
- otherInput[k]=tmp
|
|
|
-}
|
|
|
+ //其他信息
|
|
|
+ var other={{.T.other}}
|
|
|
+ var otherInput=[];
|
|
|
+ for(k in other){
|
|
|
+ var tmp={}
|
|
|
+ tmp.title=other[k].descript
|
|
|
+ tmp.input=other[k].value
|
|
|
+ tmp.key=other[k].key
|
|
|
+ tmp.status=other[k].status
|
|
|
+ if(other[k].key=="isppp"||other[k].key=="contract_guarantee"||other[k].key=="bid_guarantee"){
|
|
|
+ tmp.select=other[k].value
|
|
|
+ tmp.selectArr=['是','否']
|
|
|
+ }
|
|
|
+ otherInput[k]=tmp
|
|
|
+ }
|
|
|
|
|
|
-//中标候选人
|
|
|
-var c_worder={{.T.worder}}
|
|
|
-var worder_new={{.T.worder_new}}
|
|
|
-var c_content=[];
|
|
|
-for(k in c_worder){
|
|
|
- var c_uInput=[];
|
|
|
- for(i in c_worder[k]){
|
|
|
- var tmp={}
|
|
|
- tmp.title=c_worder[k][i].descript
|
|
|
- tmp.input=c_worder[k][i].value
|
|
|
- tmp.key=c_worder[k][i].key
|
|
|
- tmp.status=c_worder[k][i].status
|
|
|
- c_uInput[i]=tmp
|
|
|
- }
|
|
|
- var content={};
|
|
|
- content.title="候选人"
|
|
|
- content.show=true
|
|
|
- content.uInput=c_uInput
|
|
|
- content.isNew=worder_new[k]
|
|
|
- content.content=[]
|
|
|
- c_content[k]=content
|
|
|
-}
|
|
|
+ //中标候选人
|
|
|
+ var c_worder={{.T.worder}}
|
|
|
+ var worder_new={{.T.worder_new}}
|
|
|
+ var c_content=[];
|
|
|
+ for(k in c_worder){
|
|
|
+ var c_uInput=[];
|
|
|
+ for(i in c_worder[k]){
|
|
|
+ var tmp={}
|
|
|
+ tmp.title=c_worder[k][i].descript
|
|
|
+ tmp.input=c_worder[k][i].value||''
|
|
|
+ tmp.key=c_worder[k][i].key
|
|
|
+ tmp.status=c_worder[k][i].status
|
|
|
+ c_uInput[i]=tmp
|
|
|
+ }
|
|
|
+ var content={};
|
|
|
+ content.title="候选人"
|
|
|
+ content.show=true
|
|
|
+ content.status=-1
|
|
|
+ content.uInput=c_uInput
|
|
|
+ content.ck_isnew=worder_new[k] || false
|
|
|
+ content.content=[]
|
|
|
+ c_content[k]=content
|
|
|
+ }
|
|
|
|
|
|
-//标的信息
|
|
|
-var purchasinglist={{.T.purchasinglist}}
|
|
|
-var pcl_new={{.T.pcl_new}}
|
|
|
-var pcl_content=[];
|
|
|
-for(k in purchasinglist){
|
|
|
- console.log(k,pcl_new[k])
|
|
|
- var c_uInput=[];
|
|
|
- for(i in purchasinglist[k]){
|
|
|
- var tmp={}
|
|
|
- tmp.title=purchasinglist[k][i].descript
|
|
|
- tmp.input=purchasinglist[k][i].value
|
|
|
- tmp.key=purchasinglist[k][i].key
|
|
|
- tmp.status=purchasinglist[k][i].status
|
|
|
- c_uInput[i]=tmp
|
|
|
- }
|
|
|
- var content={};
|
|
|
- content.title="标的物"
|
|
|
- content.show=true
|
|
|
- content.uInput=c_uInput
|
|
|
- content.isNew=pcl_new[k]
|
|
|
- content.content=[]
|
|
|
- pcl_content[k]=content
|
|
|
-}
|
|
|
+ //标的信息
|
|
|
+ var purchasinglist={{.T.purchasinglist}}
|
|
|
+ var pcl_new={{.T.pcl_new}}
|
|
|
+ var pcl_content=[];
|
|
|
+ for(k in purchasinglist){
|
|
|
+ var c_uInput=[];
|
|
|
+ for(i in purchasinglist[k]){
|
|
|
+ var tmp={}
|
|
|
+ tmp.title=purchasinglist[k][i].descript
|
|
|
+ tmp.input=purchasinglist[k][i].value
|
|
|
+ tmp.key=purchasinglist[k][i].key
|
|
|
+ tmp.status=purchasinglist[k][i].status
|
|
|
+ c_uInput[i]=tmp
|
|
|
+ }
|
|
|
+ var content={};
|
|
|
+ content.title="标的物"
|
|
|
+ content.show=true
|
|
|
+ content.status=-1
|
|
|
+ content.uInput=c_uInput
|
|
|
+ content.ck_isnew=pcl_new[k] || false
|
|
|
+ content.content=[]
|
|
|
+ pcl_content[k]=content
|
|
|
+ }
|
|
|
|
|
|
|
|
|
-//var ispackage='{{.T.ispackage}}'
|
|
|
-//子包信息
|
|
|
-var packs={{.T.packs}}
|
|
|
-var packskey={{.T.packskey}}
|
|
|
-var pkg_new={{.T.pkg_new}}
|
|
|
-//var ck_package='{{.T.ck_package}}'
|
|
|
-//分包抽查,若果有分包,默认ok
|
|
|
-//if(packs.length>0&&ispackage=="1"){
|
|
|
-// ck_package="1"
|
|
|
-//}
|
|
|
-var p_content=[];
|
|
|
-for(k in packs){
|
|
|
- //子包基本信息
|
|
|
- var uInputs=[];
|
|
|
- var pack=packs[k]["pack"]
|
|
|
- for(i in pack){
|
|
|
- var tmp={}
|
|
|
- tmp.title=pack[i].descript
|
|
|
- tmp.input=pack[i].value
|
|
|
- tmp.key=pack[i].key
|
|
|
- //if(pack[i].key=="bidstatus"){
|
|
|
- // tmp.select=pack[i].value
|
|
|
- // tmp.selectArr=['预告','招标','成交', '中标', '废标','流标']
|
|
|
- //}
|
|
|
- tmp.status=pack[i].status
|
|
|
- uInputs[i]=tmp
|
|
|
- }
|
|
|
- var content={};
|
|
|
- content.title="子包";
|
|
|
- content.show=true;
|
|
|
- content.uInput=uInputs;
|
|
|
- content.isNew=pkg_new[k]
|
|
|
- content.num = packskey[k];
|
|
|
- p_content[k]=content;
|
|
|
- /**
|
|
|
- //子包候选人
|
|
|
- var pworder=packs[k]["pack_worder"]
|
|
|
- var p_in_content=[];
|
|
|
- for(i in pworder){
|
|
|
+ //var ispackage='{{.T.ispackage}}'
|
|
|
+ //子包信息
|
|
|
+ var packs={{.T.packs}}
|
|
|
+ var packskey={{.T.packskey}}
|
|
|
+ var pkg_new={{.T.pkg_new}}
|
|
|
+ //var ck_package='{{.T.ck_package}}'
|
|
|
+ //分包抽查,若果有分包,默认ok
|
|
|
+ //if(packs.length>0&&ispackage=="1"){
|
|
|
+ // ck_package="1"
|
|
|
+ //}
|
|
|
+ var p_content=[];
|
|
|
+ for(k in packs){
|
|
|
+ //子包基本信息
|
|
|
+ var uInputs=[];
|
|
|
+ var pack=packs[k]["pack"]
|
|
|
+ for(i in pack){
|
|
|
+ var tmp={}
|
|
|
+ tmp.title=pack[i].descript
|
|
|
+ tmp.input=pack[i].value
|
|
|
+ tmp.key=pack[i].key
|
|
|
+ //if(pack[i].key=="bidstatus"){
|
|
|
+ // tmp.select=pack[i].value
|
|
|
+ // tmp.selectArr=['预告','招标','成交', '中标', '废标','流标']
|
|
|
+ //}
|
|
|
+ tmp.status=pack[i].status
|
|
|
+ uInputs[i]=tmp
|
|
|
+ }
|
|
|
+ var content={};
|
|
|
+ content.title="子包";
|
|
|
+ content.show=true;
|
|
|
+ content.status=-1
|
|
|
+ content.uInput=uInputs;
|
|
|
+ content.ck_isnew=pkg_new[k] || false
|
|
|
+ content.num = packskey[k];
|
|
|
+ p_content[k]=content;
|
|
|
+ /**
|
|
|
+ //子包候选人
|
|
|
+ var pworder=packs[k]["pack_worder"]
|
|
|
+ var p_in_content=[];
|
|
|
+ for(i in pworder){
|
|
|
var in_uInputs=[];
|
|
|
for(n in pworder[i]){
|
|
|
var tmp={}
|
|
@@ -472,412 +482,562 @@ for(k in packs){
|
|
|
in_content.uInput=in_uInputs;
|
|
|
p_in_content[i]=in_content
|
|
|
}
|
|
|
- content.content=p_in_content;
|
|
|
- p_content[k]=content;
|
|
|
- */
|
|
|
-}
|
|
|
-
|
|
|
-var _id = {{.T.info._id}};
|
|
|
-var pclf = {{.T.PurchasinglistField}};
|
|
|
-var pclfInput = []
|
|
|
-for(i in pclf){
|
|
|
- for(key in pclf[i]){
|
|
|
- pclfInput.push({
|
|
|
- input:"",
|
|
|
- key:key,
|
|
|
- status:"-1",
|
|
|
- title:pclf[i][key]
|
|
|
- })
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-var wodf = {{.T.WinnerorderField}};
|
|
|
-var wodfInput = []
|
|
|
-for(i in wodf){
|
|
|
- for(key in wodf[i]){
|
|
|
- wodfInput.push({
|
|
|
- input:"",
|
|
|
- key:key,
|
|
|
- status:"-1",
|
|
|
- title:wodf[i][key]
|
|
|
- })
|
|
|
- }
|
|
|
-}
|
|
|
+ content.content=p_in_content;
|
|
|
+ p_content[k]=content;
|
|
|
+ */
|
|
|
+ }
|
|
|
|
|
|
-var pf = {{.T.PackageField}};
|
|
|
-var pfInput = []
|
|
|
-for(i in pf){
|
|
|
- for(key in pf[i]){
|
|
|
- pfInput.push({
|
|
|
- input:"",
|
|
|
- key:key,
|
|
|
- status:"-1",
|
|
|
- title:pf[i][key]
|
|
|
- })
|
|
|
- }
|
|
|
-}
|
|
|
-var app = new Vue({
|
|
|
- el: '#app',
|
|
|
- delimiters:["[[","]]"],
|
|
|
- data: {
|
|
|
- textMap: ['','','增', '改', '删'],
|
|
|
- tempHtml: `{{Html (Regexp (Regexp .T.info.detail "(\\n|\\\\n)\\s+" "\n") "(`|\\n|\\\\n)+" "<br/>")}}`,
|
|
|
- dataHtml: `{{Html (Regexp (Regexp .T.info.detail "(\\n|\\\\n)\\s+" "\n") "(`|\\n|\\\\n)+" "<br/>")}}`,
|
|
|
- showPop: false,
|
|
|
- editData: [
|
|
|
- {
|
|
|
- title: '基本字段',
|
|
|
- show:true,
|
|
|
- status:"-1",
|
|
|
- content: [
|
|
|
- {
|
|
|
- title: '',
|
|
|
- show: true,
|
|
|
- //wstatus:"-1",
|
|
|
- uInput: uInput
|
|
|
- //content: c_content
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- title: '时间地点',
|
|
|
- show:false,
|
|
|
- status:"-1",
|
|
|
- content: [
|
|
|
- {
|
|
|
- title: '',
|
|
|
- show: true,
|
|
|
- //wstatus:"-1",
|
|
|
- uInput: tpInput
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- title: '标的信息',
|
|
|
- show: false,
|
|
|
- showCheck: true,
|
|
|
- checkType: {{.T.pcl_isext}},
|
|
|
- status: {{.T.ck_purchasinglist}},
|
|
|
- content: pcl_content
|
|
|
- },
|
|
|
- {
|
|
|
- title: '多包信息',
|
|
|
- show: false,
|
|
|
- showCheck: true,
|
|
|
- checkType: {{.T.pkg_isext}},
|
|
|
- status: {{.T.ck_package}},
|
|
|
- content: p_content
|
|
|
- },
|
|
|
- {
|
|
|
- title: '中标候选人信息',
|
|
|
- show: false,
|
|
|
- showCheck: true,
|
|
|
- checkType: {{.T.wodr_isext}},
|
|
|
- status: {{.T.ck_winnerorder}},
|
|
|
- content: c_content
|
|
|
- },
|
|
|
- {
|
|
|
- title: '其余信息',
|
|
|
- show:false,
|
|
|
- status:"-1",
|
|
|
- content: [
|
|
|
- {
|
|
|
- title: '',
|
|
|
- show: true,
|
|
|
- //wstatus:"-1",
|
|
|
- uInput: otherInput
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- methods: {
|
|
|
- //切换状态按钮
|
|
|
- setStatus:function(witch,s){
|
|
|
- var key = witch.key
|
|
|
- //校验日期格式
|
|
|
- if(key=="bidendtime"||key=="bidopentime"||key=="project_startdate"||key=="project_completedate"||key=="publishtime"||key=="signaturedate"){
|
|
|
- var val = witch.input
|
|
|
- var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
|
|
|
- var regExp = new RegExp(reg);
|
|
|
- if(!regExp.test(val)){
|
|
|
- alert(witch.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- witch.status = s;
|
|
|
- },
|
|
|
- //一级保存
|
|
|
- saveOneData: function (one) {
|
|
|
- console.log(one.status)
|
|
|
- if (one.title=="标的信息"||one.title=="多包信息"||one.title=="中标候选人信息"){
|
|
|
- if(one.status == "-1"){
|
|
|
- this.$alert(one.title+" 未标注完成")
|
|
|
- return
|
|
|
- }else if (one.status !="-1"){
|
|
|
- var isAlert = one.content.filter(function(v) {
|
|
|
- return v.uInput.filter(function (u) {
|
|
|
- return u.status == '-1'
|
|
|
- }).length
|
|
|
+ var pclf = {{.T.PurchasinglistField}};
|
|
|
+ var pclfInput = []
|
|
|
+ for(i in pclf){
|
|
|
+ for(key in pclf[i]){
|
|
|
+ pclfInput.push({
|
|
|
+ input:"",
|
|
|
+ key:key,
|
|
|
+ status:"2",
|
|
|
+ title:pclf[i][key]
|
|
|
})
|
|
|
- if (isAlert.length) {
|
|
|
- this.$alert(one.title+" 未标注完成")
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- onetext = "["+ JSON.stringify(one) +"]";
|
|
|
- console.log(onetext)
|
|
|
- $.ajax({
|
|
|
- url:"/biaozhu",
|
|
|
- method:"post",
|
|
|
- data: {key:onetext,_id:_id},
|
|
|
- success:function(res){
|
|
|
- if(res){
|
|
|
- document.getElementById("com-alert-val").innerHtml="保存成功";
|
|
|
- var label1 = document.getElementById("com-alert");
|
|
|
- label1.style.display="block";
|
|
|
- setTimeout(function(){
|
|
|
- label1.style.display="none";
|
|
|
- },
|
|
|
- 1000)
|
|
|
- }
|
|
|
- },
|
|
|
- error:function(err){
|
|
|
- alert(err);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- //二级删除
|
|
|
- delNewTwo: function (one, index) {
|
|
|
- one.content.splice(index, 1)
|
|
|
- },
|
|
|
- /*add style*/
|
|
|
- addStyle: function (data) {
|
|
|
- //console.dir(data)
|
|
|
- return prettyPrint(data).replace(/(checkType|showCheck|wstatus|status|key|title|input|content|uInput|selectArr|select|show|true)/g, "<mark>$1</mark>")
|
|
|
- },
|
|
|
- /*同步修改源码*/
|
|
|
- changeText: function (boolean) {
|
|
|
- try {
|
|
|
- var tempText = JSON.parse(this.$refs.text.innerText.replace(/(\n|\s)/g, ''))
|
|
|
- if(boolean){
|
|
|
- this.tagvalues = tempText
|
|
|
- }else{
|
|
|
- this.editData = tempText
|
|
|
- }
|
|
|
- } catch (err) {
|
|
|
- alert('源码修改失败')
|
|
|
}
|
|
|
- },
|
|
|
- /*保存事件*/
|
|
|
- upChange: function () {
|
|
|
- var isAn =this.editData.filter(function(one){
|
|
|
- if (one.title=="标的信息"||one.title=="多包信息"||one.title=="中标候选人信息"){
|
|
|
- if(one.status == "-1"){
|
|
|
- return false
|
|
|
- }else{
|
|
|
- var isAlert = one.content.filter(function(v) {
|
|
|
- return v.uInput.filter(function (u) {
|
|
|
- return u.status == '-1'
|
|
|
- }).length
|
|
|
- })
|
|
|
- return isAlert.length
|
|
|
- }
|
|
|
- } else {
|
|
|
- return false
|
|
|
- }
|
|
|
- })
|
|
|
- if (isAn.length) {
|
|
|
- this.$alert("未标注完成")
|
|
|
- return
|
|
|
- }
|
|
|
- d= JSON.stringify(this.editData);
|
|
|
- $.ajax({
|
|
|
- url:"/biaozhu",
|
|
|
- method:"post",
|
|
|
- data: {key:d,_id:_id},
|
|
|
- success:function(res){
|
|
|
- if(res){
|
|
|
- document.getElementById("com-alert-val").innerHtml="保存成功";
|
|
|
- var label1 = document.getElementById("com-alert");
|
|
|
- label1.style.display="block";
|
|
|
- setTimeout(function(){
|
|
|
- label1.style.display="none";
|
|
|
- },
|
|
|
- 1000)
|
|
|
- }
|
|
|
- },
|
|
|
- error:function(err){
|
|
|
- alert(err);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- goText: function (value) {
|
|
|
- /*重置Html*/
|
|
|
- this.dataHtml = this.tempHtml
|
|
|
- if (!value) {return false}
|
|
|
- var rs = new RegExp('(' + value + ')', 'gi')
|
|
|
-
|
|
|
- if (rs.test(this.dataHtml)) {
|
|
|
- this.dataHtml = this.dataHtml.replace(rs, '<mark>$1</mark>')
|
|
|
- /*延迟查询dom,防止dom未插入*/
|
|
|
- var $this = this
|
|
|
- setTimeout(function () {
|
|
|
- $this.goMark()
|
|
|
- }, 150)
|
|
|
- } else {
|
|
|
- /*重置Html*/
|
|
|
- this.dataHtml = this.tempHtml
|
|
|
+ }
|
|
|
+
|
|
|
+ var wodf = {{.T.WinnerorderField}};
|
|
|
+ var wodfInput = []
|
|
|
+ for(i in wodf){
|
|
|
+ for(key in wodf[i]){
|
|
|
+ wodfInput.push({
|
|
|
+ input:"",
|
|
|
+ key:key,
|
|
|
+ status:"2",
|
|
|
+ title:wodf[i][key]
|
|
|
+ })
|
|
|
}
|
|
|
- },
|
|
|
- goMark: function () {
|
|
|
- /*滚动到第一个mark*/
|
|
|
- var temp = document.querySelectorAll('mark')[0]
|
|
|
- document.querySelector('.article').scrollTop = offset(temp).top - window.screen.height / 2
|
|
|
- },
|
|
|
- markTag:function(n){
|
|
|
- $.ajax({
|
|
|
- url:"/markTag",
|
|
|
- method:"post",
|
|
|
- data: {tag:n,_id:_id},
|
|
|
- success:function(res){
|
|
|
- if(res){
|
|
|
- document.getElementById("com-alert-val").innerHtml="标记成功";
|
|
|
- var label1 = document.getElementById("com-alert");
|
|
|
- label1.style.display="block";
|
|
|
- setTimeout(function(){label1.style.display="none";},1000)
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- addChild: function (one) {
|
|
|
- var tempNode = {}
|
|
|
- switch (one.title) {
|
|
|
- case "标的信息": {
|
|
|
- tempNode = {
|
|
|
- content: [],
|
|
|
- show:true,
|
|
|
- isNew: true,
|
|
|
- title:"标的物",
|
|
|
- uInput: JSON.parse(JSON.stringify(pclfInput))
|
|
|
- }
|
|
|
- break
|
|
|
- }
|
|
|
- case "多包信息": {pfInput
|
|
|
- tempNode = {
|
|
|
- content: [],
|
|
|
- show:true,
|
|
|
- isNew: true,
|
|
|
- title:"子包",
|
|
|
- uInput: JSON.parse(JSON.stringify(pfInput))
|
|
|
- }
|
|
|
- break
|
|
|
- }
|
|
|
- case "中标候选人信息": {
|
|
|
- tempNode = {
|
|
|
- content: [],
|
|
|
- show:true,
|
|
|
- isNew: true,
|
|
|
- title:"候选人",
|
|
|
- uInput: JSON.parse(JSON.stringify(wodfInput))
|
|
|
- }
|
|
|
- break
|
|
|
- }
|
|
|
+ }
|
|
|
+ var pf = {{.T.PackageField}};
|
|
|
+ var pfInput = []
|
|
|
+ for(i in pf){
|
|
|
+ for(key in pf[i]){
|
|
|
+ pfInput.push({
|
|
|
+ input:"",
|
|
|
+ key:key,
|
|
|
+ status:"2",
|
|
|
+ title:pf[i][key]
|
|
|
+ })
|
|
|
}
|
|
|
- one.content.push(tempNode)
|
|
|
- },
|
|
|
- //保存
|
|
|
- saveDataTwo:function(two,n){
|
|
|
- two.uInput.forEach(function(v) {
|
|
|
- var key = v.key
|
|
|
- if(key=="bidendtime"||key=="bidopentime"||key=="project_startdate"||key=="project_completedate"||key=="publishtime"||key=="signaturedate"){
|
|
|
- var val = v.input
|
|
|
- var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
|
|
|
- var regExp = new RegExp(reg);
|
|
|
- if(!regExp.test(val)){
|
|
|
- alert(v.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- if(n =="1" && v.status == "-1"){
|
|
|
- v.status = n
|
|
|
- }else if (n=="-1"){
|
|
|
- v.status = n
|
|
|
- }
|
|
|
- });
|
|
|
- /**
|
|
|
- two.content.forEach(function(v) {
|
|
|
- v.uInput.forEach(function(value) {
|
|
|
- if (value.input && value.input != '') {
|
|
|
- value.status = n
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- */
|
|
|
- },
|
|
|
- //保存提示
|
|
|
- open:function(one, type) {
|
|
|
- this.$confirm('是否保存?', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- if (type) {
|
|
|
- this.saveOneData(one)
|
|
|
- } else {
|
|
|
- this.upChange()
|
|
|
- }
|
|
|
- }).catch(() => {
|
|
|
- });
|
|
|
- },
|
|
|
- saveDataOne:function(one,n){
|
|
|
- //保存后的样式
|
|
|
- one.content.forEach(function(v) {
|
|
|
- v.uInput.forEach(function(value) {
|
|
|
- var key = value.key
|
|
|
- if(key=="bidendtime"||key=="bidopentime"||key=="project_startdate"||key=="project_completedate"||key=="publishtime"||key=="signaturedate"){
|
|
|
- var val = value.input
|
|
|
- var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
|
|
|
- var regExp = new RegExp(reg);
|
|
|
- if(!regExp.test(val)){
|
|
|
- alert(value.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
|
|
|
- return
|
|
|
+ }
|
|
|
+ var app = new Vue({
|
|
|
+ el: '#app',
|
|
|
+ delimiters:["[[","]]"],
|
|
|
+ data: {
|
|
|
+ textMap: ['','','增', '改', '删'],
|
|
|
+ tempHtml: `{{Html (Regexp (Regexp .T.info.detail "(\\n|\\\\n)\\s+" "\n") "(`|\\n|\\\\n)+" "<br/>")}}`,
|
|
|
+ dataHtml: `{{Html (Regexp (Regexp .T.info.detail "(\\n|\\\\n)\\s+" "\n") "(`|\\n|\\\\n)+" "<br/>")}}`,
|
|
|
+ fileHtml: `{{Html (Regexp (Regexp .T.info.filetext "(\\n|\\\\n)\\s+" "\n") "(`|\\n|\\\\n)+" "<br/>")}}`,
|
|
|
+ showPop: false,
|
|
|
+ editData: [
|
|
|
+ {
|
|
|
+ title: '基本字段',
|
|
|
+ show:true,
|
|
|
+ status:"-1",
|
|
|
+ content: [
|
|
|
+ {
|
|
|
+ title: '',
|
|
|
+ show: true,
|
|
|
+ delete: false,
|
|
|
+ //wstatus:"-1",
|
|
|
+ uInput: uInput
|
|
|
+ //content: c_content
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '时间地点',
|
|
|
+ show:false,
|
|
|
+ status:"-1",
|
|
|
+ content: [
|
|
|
+ {
|
|
|
+ title: '',
|
|
|
+ show: true,
|
|
|
+ delete: false,
|
|
|
+ //wstatus:"-1",
|
|
|
+ uInput: tpInput
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '标的信息',
|
|
|
+ show: false,
|
|
|
+ showCheck: true,
|
|
|
+ checkType: {{.T.ck_pclisext}},
|
|
|
+ status: {{.T.ck_purchasinglist}},
|
|
|
+ content: pcl_content
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '多包信息',
|
|
|
+ show: false,
|
|
|
+ showCheck: true,
|
|
|
+ checkType: {{.T.ck_pkgisext}},
|
|
|
+ status: {{.T.ck_package}},
|
|
|
+ content: p_content
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '中标候选人信息',
|
|
|
+ show: false,
|
|
|
+ showCheck: true,
|
|
|
+ checkType: {{.T.ck_wodrisext}},
|
|
|
+ status: {{.T.ck_winnerorder}},
|
|
|
+ content: c_content
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '其余信息',
|
|
|
+ show:false,
|
|
|
+ status:"-1",
|
|
|
+ content: [
|
|
|
+ {
|
|
|
+ title: '',
|
|
|
+ show: true,
|
|
|
+ delete: false,
|
|
|
+ //wstatus:"-1",
|
|
|
+ uInput: otherInput
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ openHref () {
|
|
|
+ if(!issave){
|
|
|
+ alert("请先保存数据!")
|
|
|
+ return
|
|
|
+ }else{
|
|
|
+ window.location.href = nextid ? `/detail/${nextid}.html` : '/finishcheck';
|
|
|
}
|
|
|
+ },
|
|
|
+ checkOneStatus: function (config) {
|
|
|
+ var tempObj = {
|
|
|
+ obj: config.type ? config.one : config.two
|
|
|
+ }
|
|
|
+ if (config.type) {
|
|
|
+ tempObj.list = config.one.content
|
|
|
+ } else {
|
|
|
+ tempObj.list = config.two.uInput
|
|
|
+ }
|
|
|
+
|
|
|
+ var statusList = [0,0,0,0,0]
|
|
|
+ for(var i in tempObj.list) {
|
|
|
+ var tempList = tempObj.list[i]
|
|
|
+ var tempIndex = Number(tempList.status)
|
|
|
+ if (tempIndex == -1) {
|
|
|
+ tempIndex = 0
|
|
|
+ }
|
|
|
+ statusList[tempIndex] = Number(statusList[tempIndex]) + 1
|
|
|
+ }
|
|
|
+
|
|
|
+ if (statusList[1] > 0) {
|
|
|
+ tempObj.obj.status = 1
|
|
|
+ }
|
|
|
+
|
|
|
+ if (statusList[4] > 0 || statusList[3] > 0 || statusList[2] > 0) {
|
|
|
+ tempObj.obj.status = 3
|
|
|
+ }
|
|
|
+ if (statusList[4] === tempObj.list.length) {
|
|
|
+ tempObj.obj.status = 4
|
|
|
+ }
|
|
|
+ if (statusList[3] === tempObj.list.length) {
|
|
|
+ tempObj.obj.status = 3
|
|
|
+ }
|
|
|
+ if (statusList[2] === tempObj.list.length) {
|
|
|
+ tempObj.obj.status = 2
|
|
|
+ }
|
|
|
+ if (statusList[0] === tempObj.list.length) {
|
|
|
+ tempObj.obj.status = -1
|
|
|
+ }
|
|
|
+ if (!config.type) {
|
|
|
+ this.checkOneStatus({
|
|
|
+ one: config.one,
|
|
|
+ two: config.two,
|
|
|
+ type: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //切换状态按钮
|
|
|
+ setStatus:function(witch,s, two, one){
|
|
|
+ var key = witch.key
|
|
|
+ //校验日期格式
|
|
|
+ if(key=="bidendtime"||key=="bidopentime"||key=="project_startdate"||key=="project_completedate"||key=="publishtime"||key=="signaturedate"){
|
|
|
+ var val = witch.input
|
|
|
+ if(val!=""){
|
|
|
+ var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
|
|
|
+ var regExp = new RegExp(reg);
|
|
|
+ if(!regExp.test(val)){
|
|
|
+ alert(witch.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ witch.status = s;
|
|
|
+ if (two) {
|
|
|
+ this.checkOneStatus({
|
|
|
+ one: one,
|
|
|
+ two: two,
|
|
|
+ type: false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //二级删除
|
|
|
+ delNewTwo: function (one, index, two) {
|
|
|
+ if (two.ck_isnew) {
|
|
|
+ one.content.splice(index, 1)
|
|
|
+ } else {
|
|
|
+ two.status = 4
|
|
|
+ this.saveDataTwo(two, 4, one)
|
|
|
+ }
|
|
|
+ this.checkOneStatus({
|
|
|
+ one: one,
|
|
|
+ two: two,
|
|
|
+ type: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /*add style*/
|
|
|
+ addStyle: function (data) {
|
|
|
+ //console.dir(data)
|
|
|
+ return prettyPrint(data).replace(/(checkType|showCheck|wstatus|status|key|title|input|content|uInput|selectArr|select|show|true)/g, "<mark>$1</mark>")
|
|
|
+ },
|
|
|
+ /*同步修改源码*/
|
|
|
+ changeText: function (boolean) {
|
|
|
+ try {
|
|
|
+ var tempText = JSON.parse(this.$refs.text.innerText.replace(/(\n|\s)/g, ''))
|
|
|
+ if(boolean){
|
|
|
+ this.tagvalues = tempText
|
|
|
+ }else{
|
|
|
+ this.editData = tempText
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ alert('源码修改失败')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ goText: function (value) {
|
|
|
+ /*重置Html*/
|
|
|
+ this.dataHtml = this.tempHtml
|
|
|
+ if (!value) {return false}
|
|
|
+ var rs = new RegExp('(' + value + ')', 'gi')
|
|
|
+
|
|
|
+ if (rs.test(this.dataHtml)) {
|
|
|
+ this.dataHtml = this.dataHtml.replace(rs, '<mark>$1</mark>')
|
|
|
+ /*延迟查询dom,防止dom未插入*/
|
|
|
+ var $this = this
|
|
|
+ setTimeout(function () {
|
|
|
+ $this.goMark()
|
|
|
+ }, 150)
|
|
|
+ } else {
|
|
|
+ /*重置Html*/
|
|
|
+ this.dataHtml = this.tempHtml
|
|
|
+ }
|
|
|
+ },
|
|
|
+ goMark: function () {
|
|
|
+ /*滚动到第一个mark*/
|
|
|
+ var temp = document.querySelectorAll('mark')[0]
|
|
|
+ document.querySelector('.article').scrollTop = offset(temp).top - window.screen.height / 2
|
|
|
+ },
|
|
|
+ markTag:function(n){
|
|
|
+ $.ajax({
|
|
|
+ url:"/markTag",
|
|
|
+ method:"post",
|
|
|
+ data: {tag:n,_id:_id},
|
|
|
+ success:function(res){
|
|
|
+ if(res){
|
|
|
+ document.getElementById("com-alert-val").innerHtml="标记成功";
|
|
|
+ var label1 = document.getElementById("com-alert");
|
|
|
+ label1.style.display="block";
|
|
|
+ setTimeout(function(){label1.style.display="none";},1000)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ addChild: function (one) {
|
|
|
+ var tempNode = {}
|
|
|
+ switch (one.title) {
|
|
|
+ case "标的信息": {
|
|
|
+ tempNode = {
|
|
|
+ content: [],
|
|
|
+ show:true,
|
|
|
+ ck_isnew: true,
|
|
|
+ status: 2,
|
|
|
+ title:"标的物",
|
|
|
+ uInput: JSON.parse(JSON.stringify(pclfInput))
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case "多包信息": {pfInput
|
|
|
+ tempNode = {
|
|
|
+ content: [],
|
|
|
+ show:true,
|
|
|
+ status: 2,
|
|
|
+ ck_isnew: true,
|
|
|
+ title:"子包",
|
|
|
+ uInput: JSON.parse(JSON.stringify(pfInput))
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case "中标候选人信息": {
|
|
|
+ tempNode = {
|
|
|
+ content: [],
|
|
|
+ show:true,
|
|
|
+ status: 2,
|
|
|
+ ck_isnew: true,
|
|
|
+ title:"候选人",
|
|
|
+ uInput: JSON.parse(JSON.stringify(wodfInput))
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // if (one.status >= 2) {
|
|
|
+ // one.status = '2'
|
|
|
+ // }
|
|
|
+ one.content.push(tempNode)
|
|
|
+ this.checkOneStatus({
|
|
|
+ one: one,
|
|
|
+ type: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //保存
|
|
|
+ saveDataTwo:function(two,n, one){
|
|
|
+ two.uInput.forEach(function(v) {
|
|
|
+ var key = v.key
|
|
|
+ if(key=="bidendtime"||key=="bidopentime"||key=="project_startdate"||key=="project_completedate"||key=="publishtime"||key=="signaturedate"){
|
|
|
+ var val = v.input
|
|
|
+ if(val!=""){
|
|
|
+ var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
|
|
|
+ var regExp = new RegExp(reg);
|
|
|
+ if(!regExp.test(val)){
|
|
|
+ alert(v.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(n =="1" && v.status == "-1"){
|
|
|
+ v.status = n
|
|
|
+ } else if (n=="-1"){
|
|
|
+ v.status = n
|
|
|
+ } else if (n=="4"){
|
|
|
+ v.status = n
|
|
|
+ }
|
|
|
+ });
|
|
|
+ two.status = n
|
|
|
+ this.checkOneStatus({
|
|
|
+ one: one,
|
|
|
+ two: two,
|
|
|
+ type: false
|
|
|
+ })
|
|
|
+ /**
|
|
|
+ two.content.forEach(function(v) {
|
|
|
+ v.uInput.forEach(function(value) {
|
|
|
+ if (value.input && value.input != '') {
|
|
|
+ value.status = n
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ */
|
|
|
+ },
|
|
|
+ saveDataOne:function(one,n){
|
|
|
+ //保存后的样式
|
|
|
+ var _this = this
|
|
|
+ one.content.forEach(function(v) {
|
|
|
+ v.uInput.forEach(function(value) {
|
|
|
+ var key = value.key
|
|
|
+ if(n==1){
|
|
|
+ if(key=="bidendtime"||key=="bidopentime"||key=="project_startdate"||key=="project_completedate"||key=="publishtime"||key=="signaturedate"){
|
|
|
+ var val = value.input
|
|
|
+ if(val != ""){
|
|
|
+ var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
|
|
|
+ var regExp = new RegExp(reg);
|
|
|
+ if(!regExp.test(val)){
|
|
|
+ alert(value.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 取消全部,通过时判断状态是否处于修改新增等
|
|
|
+ if (n =="1" && value.status == "-1"){
|
|
|
+ value.status = n
|
|
|
+ }else if (n=="-1"){
|
|
|
+ value.status = n
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ _this.checkOneStatus({
|
|
|
+ two: v,
|
|
|
+ one: one,
|
|
|
+ type: false
|
|
|
+ })
|
|
|
+ });
|
|
|
+ // one.content.forEach(function(v) {
|
|
|
+ // if (v.content) {
|
|
|
+ // v.content.forEach(function(i) {
|
|
|
+ // i.uInput.forEach(function(value) {
|
|
|
+ // if (value.input && value.input != '') {
|
|
|
+ // value.status = n
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ //保存当前标记
|
|
|
+ },
|
|
|
+ //验证保存提示
|
|
|
+ open:function(stype) {
|
|
|
+ this.$confirm('是否保存?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ this.upChange(stype)
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //保存事件
|
|
|
+ upChange: function (stype) {
|
|
|
+ var resultStatus = false
|
|
|
+
|
|
|
+ if (stype == 1) {
|
|
|
+ var checkAllKey = this.editData.filter(function (one) {
|
|
|
+ var otherOne = one.content.filter(function(v) {
|
|
|
+ return v.uInput.filter(function (u) {
|
|
|
+ return u.status == '-1'
|
|
|
+ }).length
|
|
|
+ })
|
|
|
+ if ((one.title=="标的信息"||one.title=="多包信息"||one.title=="中标候选人信息") && (one.status == "-1")) {
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ return otherOne.length
|
|
|
+ }
|
|
|
+ })
|
|
|
+ resultStatus = !Boolean(checkAllKey.length)
|
|
|
+ } else {
|
|
|
+ var checkOnlyKey = this.editData.filter(function (one) {
|
|
|
+ if (one.title=="标的信息"||one.title=="多包信息"||one.title=="中标候选人信息") {
|
|
|
+ if (one.status == "-1") {
|
|
|
+ return false
|
|
|
+ } else {
|
|
|
+ if (one.content.length === 0) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ var otherOne = one.content.filter(function(v) {
|
|
|
+ return v.uInput.filter(function (u) {
|
|
|
+ return u.status == '-1'
|
|
|
+ }).length
|
|
|
+ })
|
|
|
+ return !(otherOne.length > 0)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ var otherOne = one.content.filter(function(v) {
|
|
|
+ return v.uInput.filter(function (u) {
|
|
|
+ return u.status != '-1'
|
|
|
+ }).length
|
|
|
+ })
|
|
|
+ return otherOne.length
|
|
|
+ }
|
|
|
+ })
|
|
|
+ resultStatus = Boolean(checkOnlyKey.length)
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!resultStatus) {
|
|
|
+ this.$alert("未标注完成");
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var d= JSON.stringify(this.editData);
|
|
|
+ console.log(d)
|
|
|
+ $.ajax({
|
|
|
+ url:"/biaozhu",
|
|
|
+ method:"post",
|
|
|
+ data: {key:d,_id:_id,stype:stype},
|
|
|
+ success:function(res){
|
|
|
+ if(res){
|
|
|
+ document.getElementById("com-alert-val").innerHtml="保存成功";
|
|
|
+ var label1 = document.getElementById("com-alert");
|
|
|
+ label1.style.display="block";
|
|
|
+ setTimeout(function(){
|
|
|
+ label1.style.display="none";
|
|
|
+ },1000)
|
|
|
+ issave = true//保存成功
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error:function(err){
|
|
|
+ alert(err);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
- if (n =="1" && value.status == "-1"){
|
|
|
- value.status = n
|
|
|
- }else if (n=="-1"){
|
|
|
- value.status = n
|
|
|
- }
|
|
|
- })
|
|
|
- });
|
|
|
- one.content.forEach(function(v) {
|
|
|
- if (v.content) {
|
|
|
- v.content.forEach(function(i) {
|
|
|
- i.uInput.forEach(function(value) {
|
|
|
- if (value.input && value.input != '') {
|
|
|
- value.status = n
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- }
|
|
|
- });
|
|
|
- //保存当前标记
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
-function offset(elem) {
|
|
|
- if(!elem) elem = this;
|
|
|
+ /**
|
|
|
+ //保存提示
|
|
|
+ open:function(one, type) {
|
|
|
+ this.$confirm('是否保存?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ if (type) {
|
|
|
+ this.saveOneData(one)
|
|
|
+ } else {
|
|
|
+ this.upChange()
|
|
|
+ }
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //一级保存
|
|
|
+ saveOneData: function (one) {
|
|
|
+ console.log(one.status)
|
|
|
+ if (one.title=="标的信息"||one.title=="多包信息"||one.title=="中标候选人信息"){
|
|
|
+ if(one.status == "-1"){
|
|
|
+ this.$alert(one.title+" 未标注完成")
|
|
|
+ return
|
|
|
+ }else if (one.status !="-1"){
|
|
|
+ var isAlert = one.content.filter(function(v) {
|
|
|
+ return v.uInput.filter(function (u) {
|
|
|
+ return u.status == '-1'
|
|
|
+ }).length
|
|
|
+ })
|
|
|
+ if (isAlert.length) {
|
|
|
+ this.$alert(one.title+" 未标注完成")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ onetext = "["+ JSON.stringify(one) +"]";
|
|
|
+ console.log(onetext)
|
|
|
+ $.ajax({
|
|
|
+ url:"/biaozhu",
|
|
|
+ method:"post",
|
|
|
+ data: {key:onetext,_id:_id},
|
|
|
+ success:function(res){
|
|
|
+ if(res){
|
|
|
+ document.getElementById("com-alert-val").innerHtml="保存成功";
|
|
|
+ var label1 = document.getElementById("com-alert");
|
|
|
+ label1.style.display="block";
|
|
|
+ setTimeout(function(){
|
|
|
+ label1.style.display="none";
|
|
|
+ },
|
|
|
+ 1000)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error:function(err){
|
|
|
+ alert(err);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ */
|
|
|
+ }
|
|
|
+ })
|
|
|
+ function offset(elem) {
|
|
|
+ if(!elem) elem = this;
|
|
|
|
|
|
- var x = elem.offsetLeft;
|
|
|
- var y = elem.offsetTop;
|
|
|
+ var x = elem.offsetLeft;
|
|
|
+ var y = elem.offsetTop;
|
|
|
|
|
|
- while (elem = elem.offsetParent) {
|
|
|
- x += elem.offsetLeft;
|
|
|
- y += elem.offsetTop;
|
|
|
+ while (elem = elem.offsetParent) {
|
|
|
+ x += elem.offsetLeft;
|
|
|
+ y += elem.offsetTop;
|
|
|
+ }
|
|
|
+ return { left: x, top: y };
|
|
|
}
|
|
|
- return { left: x, top: y };
|
|
|
-}
|
|
|
</script>
|
|
|
</html>
|