From 9d6c67cd2105f09762e619706bcb48613f0aa2ab Mon Sep 17 00:00:00 2001
From: fuchengshen <men883234@gmail.com>
Date: 星期一, 20 六月 2022 10:18:29 +0800
Subject: [PATCH] before merge

---
 build/plugins/cool.ts |  576 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 287 insertions(+), 289 deletions(-)

diff --git a/build/plugins/cool.ts b/build/plugins/cool.ts
index 5efc6df..a065373 100644
--- a/build/plugins/cool.ts
+++ b/build/plugins/cool.ts
@@ -10,299 +10,299 @@
 
 // 鏍煎紡鍖�
 function format(data: any) {
-	return {
-		label: data.label,
-		prop: data.prop,
-		...data,
-		component: data.component
-	};
+  return {
+    label: data.label,
+    prop: data.prop,
+    ...data,
+    component: data.component
+  };
 }
 
 // 棰滆壊
 const colors = [
-	"#409EFF",
-	"#67C23A",
-	"#E6A23C",
-	"#F56C6C",
-	"#909399",
-	"#B0CFEB",
-	"#FF9B91",
-	"#E6A23C",
-	"#BFAD6F",
-	"#FB78F2"
+  "#409EFF",
+  "#67C23A",
+  "#E6A23C",
+  "#F56C6C",
+  "#909399",
+  "#B0CFEB",
+  "#FF9B91",
+  "#E6A23C",
+  "#BFAD6F",
+  "#FB78F2"
 ];
 
 // 缁勪欢澶勭悊鍣�
 const handler = {
-	// 鍗曢��
-	dict({ comment }) {
-		const [label, ...arr] = comment.split(" ");
+  // 鍗曢��
+  dict({ comment }) {
+    const [label, ...arr] = comment.split(" ");
 
-		// 閫夋嫨鍒楄〃
-		const list = arr.map((e: string, i: number) => {
-			const [value, label] = e.split("-");
-			const d: any = {
-				label,
-				value: isNaN(Number(value)) ? value : Number(value)
-			};
+    // 閫夋嫨鍒楄〃
+    const list = arr.map((e: string, i: number) => {
+      const [value, label] = e.split("-");
+      const d: any = {
+        label,
+        value: isNaN(Number(value)) ? value : Number(value)
+      };
 
-			if (i > 0 && colors[i]) {
-				d.color = colors[i];
-			}
+      if (i > 0 && colors[i]) {
+        d.color = colors[i];
+      }
 
-			return d;
-		});
+      return d;
+    });
 
-		const d: any = {
-			table: {
-				label,
-				dict: list
-			},
-			form: {
-				label,
-				component: {
-					name: "",
-					options: list
-				}
-			}
-		};
+    const d: any = {
+      table: {
+        label,
+        dict: list
+      },
+      form: {
+        label,
+        component: {
+          name: "",
+          options: list
+        }
+      }
+    };
 
-		// 榛樿鍊�
-		if (list[0]) {
-			d.form.value = list[0].value;
-		}
+    // 榛樿鍊�
+    if (list[0]) {
+      d.form.value = list[0].value;
+    }
 
-		// 鍖归厤缁勪欢
-		d.form.component.name = arr.length > 4 ? "el-select" : "el-radio-group";
+    // 鍖归厤缁勪欢
+    d.form.component.name = arr.length > 4 ? "el-select" : "el-radio-group";
 
-		return d;
-	},
+    return d;
+  },
 
-	// 澶氶��
-	dict_multiple({ comment }) {
-		const { table, form }: any = handler.dict({ comment });
+  // 澶氶��
+  dict_multiple({ comment }) {
+    const { table, form }: any = handler.dict({ comment });
 
-		if (!form.component.props) {
-			form.component.props = {};
-		}
+    if (!form.component.props) {
+      form.component.props = {};
+    }
 
-		if (!form.value) {
-			form.value = [];
-		}
+    if (!form.value) {
+      form.value = [];
+    }
 
-		switch (form.component.name) {
-			case "el-select":
-				form.component.props.multiple = true;
-				form.component.props.filterable = true;
-				break;
-			case "el-radio-group":
-				form.component.name = "el-checkbox-group";
-				break;
-		}
+    switch (form.component.name) {
+      case "el-select":
+        form.component.props.multiple = true;
+        form.component.props.filterable = true;
+        break;
+      case "el-radio-group":
+        form.component.name = "el-checkbox-group";
+        break;
+    }
 
-		return {
-			table,
-			form
-		};
-	}
+    return {
+      table,
+      form
+    };
+  }
 };
 
 // 瑙f瀽body
 function parseJson(req: any) {
-	return new Promise((resolve, reject) => {
-		let d = "";
-		req.on("data", function (chunk: Buffer) {
-			d += chunk;
-		});
-		req.on("end", function () {
-			try {
-				resolve(JSON.parse(d));
-			} catch (e) {
-				reject(e);
-			}
-		});
-	});
+  return new Promise((resolve, reject) => {
+    let d = "";
+    req.on("data", function (chunk: Buffer) {
+      d += chunk;
+    });
+    req.on("end", function () {
+      try {
+        resolve(JSON.parse(d));
+      } catch (e) {
+        reject(e);
+      }
+    });
+  });
 }
 
 // 鍒涘缓缁勪欢
 function createComponent(item: any) {
-	const { propertyName: prop, comment: label } = item;
+  const { propertyName: prop, comment: label } = item;
 
-	let d = null;
+  let d = null;
 
-	rules.forEach((r: any) => {
-		const s = r.test.find((e: any) => {
-			if (isRegExp(e)) {
-				return e.test(prop);
-			}
+  rules.forEach((r: any) => {
+    const s = r.test.find((e: any) => {
+      if (isRegExp(e)) {
+        return e.test(prop);
+      }
 
-			if (isFunction(e)) {
-				return e(prop);
-			}
+      if (isFunction(e)) {
+        return e(prop);
+      }
 
-			if (isString(e)) {
-				const re = new RegExp(`${e}$`);
-				return re.test(prop.toLocaleLowerCase());
-			}
+      if (isString(e)) {
+        const re = new RegExp(`${e}$`);
+        return re.test(prop.toLocaleLowerCase());
+      }
 
-			return false;
-		});
+      return false;
+    });
 
-		if (s) {
-			if (r.handler) {
-				const fn = isString(r.handler) ? handler[r.handler] : r.handler;
+    if (s) {
+      if (r.handler) {
+        const fn = isString(r.handler) ? handler[r.handler] : r.handler;
 
-				if (isFunction(fn)) {
-					d = fn(item);
-				}
-			} else {
-				d = {
-					...r,
-					test: undefined
-				};
-			}
-		}
-	});
+        if (isFunction(fn)) {
+          d = fn(item);
+        }
+      } else {
+        d = {
+          ...r,
+          test: undefined
+        };
+      }
+    }
+  });
 
-	function parse(v: any) {
-		if (v?.name) {
-			return {
-				prop,
-				label,
-				component: v
-			};
-		} else {
-			return {
-				prop,
-				label,
-				...v
-			};
-		}
-	}
+  function parse(v: any) {
+    if (v?.name) {
+      return {
+        prop,
+        label,
+        component: v
+      };
+    } else {
+      return {
+        prop,
+        label,
+        ...v
+      };
+    }
+  }
 
-	return {
-		column: parse(d?.table),
-		item: parse(d?.form)
-	};
+  return {
+    column: parse(d?.table),
+    item: parse(d?.form)
+  };
 }
 
 // 鑾峰彇椤甸潰鏍囪瘑
 function getPageName(router: string) {
-	if (router.indexOf("/") === 0) {
-		router = router.substr(1, router.length);
-	}
+  if (router.indexOf("/") === 0) {
+    router = router.substr(1, router.length);
+  }
 
-	return router ? `name: "${router.replace("/", "-")}",` : "";
+  return router ? `name: "${router.replace("/", "-")}",` : "";
 }
 
 // 鏃堕棿鍚堝苟
 function datetimeMerge({ columns, item }: any) {
-	if (["startTime", "startDate"].includes(item.prop)) {
-		const key = item.prop.replace("start", "");
+  if (["startTime", "startDate"].includes(item.prop)) {
+    const key = item.prop.replace("start", "");
 
-		if (columns.find((e: any) => e.propertyName == "end" + key)) {
-			item.prop = key.toLocaleLowerCase();
-			const isTime = item.prop == "time";
-			item.label = isTime ? "鏃堕棿鑼冨洿" : "鏃ユ湡鑼冨洿";
-			item.hook = "datetimeRange";
-			item.component = {
-				name: "el-date-picker",
-				props: {
-					type: isTime ? "datetimerange" : "daterange",
-					valueFormat: isTime ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD 00:00:00",
-					defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]
-				}
-			};
-		}
-	}
+    if (columns.find((e: any) => e.propertyName == "end" + key)) {
+      item.prop = key.toLocaleLowerCase();
+      const isTime = item.prop == "time";
+      item.label = isTime ? "鏃堕棿鑼冨洿" : "鏃ユ湡鑼冨洿";
+      item.hook = "datetimeRange";
+      item.component = {
+        name: "el-date-picker",
+        props: {
+          type: isTime ? "datetimerange" : "daterange",
+          valueFormat: isTime ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD 00:00:00",
+          defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]
+        }
+      };
+    }
+  }
 }
 
 // 鍒涘缓鏂囦欢
 function createVue({ router, columns, prefix, api, module, filename }: any): void {
-	const upsert: any = {
-		items: []
-	};
+  const upsert: any = {
+    items: []
+  };
 
-	const table: any = {
-		columns: []
-	};
+  const table: any = {
+    columns: []
+  };
 
-	// 閬嶅巻
-	columns.forEach((e: any) => {
-		// 缁勪欢
-		const { item, column }: any = createComponent(e);
+  // 閬嶅巻
+  columns.forEach((e: any) => {
+    // 缁勪欢
+    const { item, column }: any = createComponent(e);
 
-		// 楠岃瘉瑙勫垯
-		if (!e.nullable) {
-			item.required = true;
-		}
+    // 楠岃瘉瑙勫垯
+    if (!e.nullable) {
+      item.required = true;
+    }
 
-		// 蹇界暐閮ㄥ垎瀛楁
-		if (!["createTime", "updateTime", "id", "endTime", "endDate"].includes(item.prop)) {
-			datetimeMerge({ columns, item });
+    // 蹇界暐閮ㄥ垎瀛楁
+    if (!["createTime", "updateTime", "id", "endTime", "endDate"].includes(item.prop)) {
+      datetimeMerge({ columns, item });
 
-			if (!item.component) {
-				item.component = {
-					name: "el-input"
-				};
-			}
+      if (!item.component) {
+        item.component = {
+          name: "el-input"
+        };
+      }
 
-			upsert.items.push(format(item));
-		}
+      upsert.items.push(format(item));
+    }
 
-		if (!["cl-codemirror", "cl-editor-quill"].includes(column.component?.name)) {
-			table.columns.push(format(column));
-		}
-	});
+    if (!["cl-codemirror", "cl-editor-quill"].includes(column.component?.name)) {
+      table.columns.push(format(column));
+    }
+  });
 
-	// 鏈嶅姟
-	const service = prefix.replace("/admin", "service").replace(/\//g, ".");
+  // 鏈嶅姟
+  const service = prefix.replace("/admin", "service").replace(/\//g, ".");
 
-	// 璇锋眰璺緞
-	const paths = api.map((e: any) => e.path);
+  // 璇锋眰璺緞
+  const paths = api.map((e: any) => e.path);
 
-	// 鏉冮檺
-	const permission: any = {
-		add: paths.includes("/add"),
-		del: paths.includes("/delete"),
-		update: paths.includes("/info") && paths.includes("/update"),
-		page: paths.includes("/page"),
-		upsert: true
-	};
-	permission.upsert = permission.add || permission.update;
+  // 鏉冮檺
+  const permission: any = {
+    add: paths.includes("/add"),
+    del: paths.includes("/delete"),
+    update: paths.includes("/info") && paths.includes("/update"),
+    page: paths.includes("/page"),
+    upsert: true
+  };
+  permission.upsert = permission.add || permission.update;
 
-	// 鏄惁鏈夋搷浣滄爮
-	if (permission.del || permission.upsert) {
-		const d: any = {
-			type: "op",
-			buttons: []
-		};
+  // 鏄惁鏈夋搷浣滄爮
+  if (permission.del || permission.upsert) {
+    const d: any = {
+      type: "op",
+      buttons: []
+    };
 
-		if (permission.upsert) {
-			d.buttons.push("edit");
-		}
+    if (permission.upsert) {
+      d.buttons.push("edit");
+    }
 
-		if (permission.del) {
-			d.buttons.push("delete");
-		}
+    if (permission.del) {
+      d.buttons.push("delete");
+    }
 
-		table.columns.push(d);
-	}
+    table.columns.push(d);
+  }
 
-	// 鏄惁澶氶�夈�佸簭鍙�
-	if (permission.del) {
-		table.columns.unshift({
-			type: "selection"
-		});
-	} else {
-		table.columns.unshift({
-			label: "#",
-			type: "index"
-		});
-	}
+  // 鏄惁澶氶�夈�佸簭鍙�
+  if (permission.del) {
+    table.columns.unshift({
+      type: "selection"
+    });
+  } else {
+    table.columns.unshift({
+      label: "#",
+      type: "index"
+    });
+  }
 
-	// 浠g爜妯℃澘
-	const temp = `<template>
+  // 浠g爜妯℃澘
+  const temp = `<template>
     <cl-crud :ref="setRefs('crud')" @load="onLoad">
         <el-row type="flex" align="middle">
             <!-- 鍒锋柊鎸夐挳 -->
@@ -325,11 +325,10 @@
             <cl-pagination />
         </el-row>
 
-        ${
-			permission.update
-				? '<!-- 鏂板銆佺紪杈� -->\n<cl-upsert :ref="setRefs(\'upsert\')" v-bind="upsert" />'
-				: ""
-		}
+        ${permission.update
+      ? '<!-- 鏂板銆佺紪杈� -->\n<cl-upsert :ref="setRefs(\'upsert\')" v-bind="upsert" />'
+      : ""
+    }
     </cl-crud>
 </template>
 
@@ -344,13 +343,12 @@
     setup() {
         const { refs, setRefs, service } = useCool();
 
-        ${
-			permission.upsert
-				? "// 鏂板銆佺紪杈戦厤缃甛nconst upsert = reactive<Upsert>(" +
-				  JSON.stringify(upsert) +
-				  ");"
-				: ""
-		}
+        ${permission.upsert
+      ? "// 鏂板銆佺紪杈戦厤缃甛nconst upsert = reactive<Upsert>(" +
+      JSON.stringify(upsert) +
+      ");"
+      : ""
+    }
 
         // 琛ㄦ牸閰嶇疆
         const table = reactive<Table>(${JSON.stringify(table)});
@@ -372,61 +370,61 @@
 });
 </script>`;
 
-	const content = prettier.format(temp, {
-		parser: "vue",
-		useTabs: true,
-		tabWidth: 4,
-		endOfLine: "lf",
-		semi: true,
-		jsxBracketSameLine: true,
-		singleQuote: false,
-		printWidth: 100,
-		trailingComma: "none"
-	});
+  const content = prettier.format(temp, {
+    parser: "vue",
+    useTabs: true,
+    tabWidth: 4,
+    endOfLine: "lf",
+    semi: true,
+    jsxBracketSameLine: true,
+    singleQuote: false,
+    printWidth: 100,
+    trailingComma: "none"
+  });
 
-	// views 鐩綍鏄惁瀛樺湪
-	const dir = path.join(coolPath, `modules/${module}/views`);
-	if (!fs.existsSync(dir)) fs.mkdirSync(dir);
+  // views 鐩綍鏄惁瀛樺湪
+  const dir = path.join(coolPath, `modules/${module}/views`);
+  if (!fs.existsSync(dir)) fs.mkdirSync(dir);
 
-	// 鍒涘缓鏂囦欢
-	fs.createWriteStream(path.join(dir, `${filename}.vue`), {
-		flags: "w"
-	}).write(content);
+  // 鍒涘缓鏂囦欢
+  fs.createWriteStream(path.join(dir, `${filename}.vue`), {
+    flags: "w"
+  }).write(content);
 }
 
 export const cool = (): Plugin | null => {
-	return {
-		name: "vite-cool",
-		configureServer(server) {
-			server.middlewares.use(async (req, res, next) => {
-				function done(data) {
-					res.writeHead(200, { "Content-Type": "text/html;charset=UTF-8" });
-					res.end(JSON.stringify(data));
-				}
+  return {
+    name: "vite-cool",
+    configureServer(server) {
+      server.middlewares.use(async (req, res, next) => {
+        function done(data) {
+          res.writeHead(200, { "Content-Type": "text/html;charset=UTF-8" });
+          res.end(JSON.stringify(data));
+        }
 
-				if (req.url.includes("/__cool_createMenu")) {
-					try {
-						const body: any = await parseJson(req);
-						await createVue(body);
-						done({
-							code: 1000
-						});
-					} catch (e) {
-						done({
-							code: 1001,
-							message: e.message
-						});
-					}
-				} else if (req.url.includes("/__cool_modules")) {
-					const dirs = fs.readdirSync(path.join(coolPath, "modules"));
-					done({
-						code: 1000,
-						data: dirs.filter((e) => !e.includes("."))
-					});
-				} else {
-					next();
-				}
-			});
-		}
-	};
+        if (req.url.includes("/__cool_createMenu")) {
+          try {
+            const body: any = await parseJson(req);
+            await createVue(body);
+            done({
+              code: 1000
+            });
+          } catch (e) {
+            done({
+              code: 1001,
+              message: e.message
+            });
+          }
+        } else if (req.url.includes("/__cool_modules")) {
+          const dirs = fs.readdirSync(path.join(coolPath, "modules"));
+          done({
+            code: 1000,
+            data: dirs.filter((e) => !e.includes("."))
+          });
+        } else {
+          next();
+        }
+      });
+    }
+  };
 };

--
Gitblit v1.9.1