|
@@ -1,7 +1,39 @@
|
|
|
|
|
+import {copy} from './utils';
|
|
|
class Service{
|
|
class Service{
|
|
|
|
|
+
|
|
|
|
|
+ constructor() {
|
|
|
|
|
+ this.cache = [];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
ip() {
|
|
ip() {
|
|
|
return "http://127.0.0.1"
|
|
return "http://127.0.0.1"
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ processQingdanmingxi(mingxi) {
|
|
|
|
|
+ this.cache = copy(mingxi);
|
|
|
|
|
+ for(let i = 0; i < this.cache.length; i++) {
|
|
|
|
|
+ let zimu = this.cache[i];
|
|
|
|
|
+ if (!zimu.hasOwnProperty("__children")) {
|
|
|
|
|
+ zimu["__children"] = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!zimu.hasOwnProperty("rcj")) {
|
|
|
|
|
+ zimu["rcj"] = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
|
|
|
|
|
+ "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ for(let i = 0; i < this.cache.length; i++) {
|
|
|
|
|
+ let zimu = this.cache[i];
|
|
|
|
|
+ for(let j = 0; j < zimu["__children"].length; j++) {
|
|
|
|
|
+ let de = zimu["__children"][j];
|
|
|
|
|
+ if (!de.hasOwnProperty("dercj")) {
|
|
|
|
|
+ de["dercj"] = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
|
|
|
|
|
+ "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
async generateOutline(name) {
|
|
async generateOutline(name) {
|
|
|
const response = await fetch(this.ip().concat( ":8000/outline"), {
|
|
const response = await fetch(this.ip().concat( ":8000/outline"), {
|
|
|
method : "POST",
|
|
method : "POST",
|
|
@@ -426,7 +458,12 @@ class Service{
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /////////////////////////////////////qingdan//////////////////////////////////////
|
|
|
|
|
+
|
|
|
async generateQingdanmingxi(name, bh, bt) {
|
|
async generateQingdanmingxi(name, bh, bt) {
|
|
|
|
|
+ if (this.cache.length == 0 || this.cache[0]["biao_id"] != name || this.cache[0]["Dwgcbh"] != bh ||
|
|
|
|
|
+ this.cache[0]["bt"] != bt) {
|
|
|
const response = await fetch(this.ip().concat(":8000/qingdanmingxi/"), {
|
|
const response = await fetch(this.ip().concat(":8000/qingdanmingxi/"), {
|
|
|
method : "POST",
|
|
method : "POST",
|
|
|
headers: {
|
|
headers: {
|
|
@@ -445,122 +482,104 @@ class Service{
|
|
|
console.error('error');
|
|
console.error('error');
|
|
|
} else {
|
|
} else {
|
|
|
const data = await response.json();
|
|
const data = await response.json();
|
|
|
|
|
+ this.processQingdanmingxi(data);
|
|
|
return data;
|
|
return data;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
|
|
- const response = await fetch(this.ip().concat( ":8000/qingdantuijian/"), {
|
|
|
|
|
- method : "POST",
|
|
|
|
|
- headers: {
|
|
|
|
|
- "Content-type": "application/json"
|
|
|
|
|
- },
|
|
|
|
|
- body: JSON.stringify(
|
|
|
|
|
- {
|
|
|
|
|
- "bh": bh,
|
|
|
|
|
- "bt": bt,
|
|
|
|
|
- "bm": bm,
|
|
|
|
|
- "name": name
|
|
|
|
|
- }
|
|
|
|
|
- )
|
|
|
|
|
- });
|
|
|
|
|
- if (!response.ok) {
|
|
|
|
|
- //const error = await response.json();
|
|
|
|
|
- console.error('error');
|
|
|
|
|
} else {
|
|
} else {
|
|
|
- const data = await response.json();
|
|
|
|
|
- return data;
|
|
|
|
|
|
|
+ return copy(this.cache);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
async generateQingdanrcj(name, bh, bt, bm) {
|
|
async generateQingdanrcj(name, bh, bt, bm) {
|
|
|
- const response = await fetch(this.ip().concat( ":8000/qingdanrcj/"), {
|
|
|
|
|
- method : "POST",
|
|
|
|
|
- headers: {
|
|
|
|
|
- "Content-type": "application/json"
|
|
|
|
|
- },
|
|
|
|
|
- body: JSON.stringify(
|
|
|
|
|
- {
|
|
|
|
|
- "bh": bh,
|
|
|
|
|
- "bt": bt,
|
|
|
|
|
- "bm": bm,
|
|
|
|
|
- "name": name
|
|
|
|
|
- }
|
|
|
|
|
- )
|
|
|
|
|
- });
|
|
|
|
|
- if (!response.ok) {
|
|
|
|
|
- //const error = await response.json();
|
|
|
|
|
- console.error('error');
|
|
|
|
|
- } else {
|
|
|
|
|
- const data = await response.json();
|
|
|
|
|
- return data;
|
|
|
|
|
|
|
+ if (bt == "Djcs") {
|
|
|
|
|
+ const response = await fetch(this.ip().concat( ":8000/qingdanrcj/"), {
|
|
|
|
|
+ method : "POST",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ "Content-type": "application/json"
|
|
|
|
|
+ },
|
|
|
|
|
+ body: JSON.stringify(
|
|
|
|
|
+ {
|
|
|
|
|
+ "bh": bh,
|
|
|
|
|
+ "bt": bt,
|
|
|
|
|
+ "bm": bm,
|
|
|
|
|
+ "name": name
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ });
|
|
|
|
|
+ if (!response.ok) {
|
|
|
|
|
+ //const error = await response.json();
|
|
|
|
|
+ console.error('error');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ const data = await response.json();
|
|
|
|
|
+ return data;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ let qd = this.cache.filter(x=>x["清单编码"] == bm)[0];
|
|
|
|
|
+ return qd["rcj"];
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
async generateDingercj(name, bh, bt, qdbm, debm, danwei) {
|
|
async generateDingercj(name, bh, bt, qdbm, debm, danwei) {
|
|
|
- const response = await fetch(this.ip().concat( ":8000/dingercj/"), {
|
|
|
|
|
- method : "POST",
|
|
|
|
|
- headers: {
|
|
|
|
|
- "Content-type": "application/json"
|
|
|
|
|
- },
|
|
|
|
|
- body: JSON.stringify(
|
|
|
|
|
- {
|
|
|
|
|
- "bh": bh,
|
|
|
|
|
- "bt": bt,
|
|
|
|
|
- "qdbm": qdbm,
|
|
|
|
|
- "debm" : debm,
|
|
|
|
|
- "name": name
|
|
|
|
|
- }
|
|
|
|
|
- )
|
|
|
|
|
- });
|
|
|
|
|
- if (!response.ok) {
|
|
|
|
|
- //const error = await response.json();
|
|
|
|
|
- console.error('error');
|
|
|
|
|
- } else {
|
|
|
|
|
- const data = await response.json();
|
|
|
|
|
- if (data.length == 0) {
|
|
|
|
|
- return [
|
|
|
|
|
- [
|
|
|
|
|
- "ID",
|
|
|
|
|
- "人材机编码",
|
|
|
|
|
- "名称",
|
|
|
|
|
- "规格型号",
|
|
|
|
|
- "单位",
|
|
|
|
|
- "单价",
|
|
|
|
|
- "产地",
|
|
|
|
|
- "供应厂商",
|
|
|
|
|
- "人材机类别",
|
|
|
|
|
- "甲供标志",
|
|
|
|
|
- "含量",
|
|
|
|
|
- "合价",
|
|
|
|
|
- "暂估价标志",
|
|
|
|
|
- "主要材料标志",
|
|
|
|
|
- "主材标志",
|
|
|
|
|
- "设备标志"
|
|
|
|
|
- ],
|
|
|
|
|
- [
|
|
|
|
|
- "",
|
|
|
|
|
- debm,
|
|
|
|
|
- "",
|
|
|
|
|
- "",
|
|
|
|
|
- danwei,
|
|
|
|
|
- "",//danjia
|
|
|
|
|
- "",//chandi
|
|
|
|
|
- "",//gongyingchangshang
|
|
|
|
|
- "2",//rencaijileibie
|
|
|
|
|
- "false",//jiagong
|
|
|
|
|
- "1",//hanliang
|
|
|
|
|
- "=F2*K2",//hejia
|
|
|
|
|
- "",
|
|
|
|
|
- "",
|
|
|
|
|
- "",
|
|
|
|
|
- ""
|
|
|
|
|
- ]
|
|
|
|
|
- ];
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
|
|
+ if (bt == 'Djcs') {
|
|
|
|
|
+ const response = await fetch(this.ip().concat( ":8000/dingercj/"), {
|
|
|
|
|
+ method : "POST",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ "Content-type": "application/json"
|
|
|
|
|
+ },
|
|
|
|
|
+ body: JSON.stringify(
|
|
|
|
|
+ {
|
|
|
|
|
+ "bh": bh,
|
|
|
|
|
+ "bt": bt,
|
|
|
|
|
+ "qdbm": qdbm,
|
|
|
|
|
+ "debm" : debm,
|
|
|
|
|
+ "name": name
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ });
|
|
|
|
|
+ if (!response.ok) {
|
|
|
|
|
+ //const error = await response.json();
|
|
|
|
|
+ console.error('error');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ const data = await response.json();
|
|
|
return data;
|
|
return data;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ let qd = this.cache.filter(x=>x["清单编码"] == qdbm)[0];
|
|
|
|
|
+ let de = qd["__children"].filter(x=>x["清单编码"]==debm)[0];
|
|
|
|
|
+ return de["dercj"];
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+/////////////////////////////end of qingdan////////////////////////////////////
|
|
|
|
|
+
|
|
|
|
|
+async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
|
|
+ const response = await fetch(this.ip().concat( ":8000/qingdantuijian/"), {
|
|
|
|
|
+ method : "POST",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ "Content-type": "application/json"
|
|
|
|
|
+ },
|
|
|
|
|
+ body: JSON.stringify(
|
|
|
|
|
+ {
|
|
|
|
|
+ "bh": bh,
|
|
|
|
|
+ "bt": bt,
|
|
|
|
|
+ "bm": bm,
|
|
|
|
|
+ "name": name
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ });
|
|
|
|
|
+ if (!response.ok) {
|
|
|
|
|
+ //const error = await response.json();
|
|
|
|
|
+ console.error('error');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ const data = await response.json();
|
|
|
|
|
+ return data;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
async generateZjcs(name, bh) {
|
|
async generateZjcs(name, bh) {
|
|
|
const response = await fetch(this.ip().concat( ":8000/zjcs/"), {
|
|
const response = await fetch(this.ip().concat( ":8000/zjcs/"), {
|
|
|
method : "POST",
|
|
method : "POST",
|