c1027ce13b46fcd98d92e5faabce3ad0.json 41 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\codeGeneration\\components\\TableForm.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\codeGeneration\\components\\TableForm.vue","mtime":1761185180208},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgew0KICBjcnVkTWVudXMsDQogIGNydWRDb2x1bW5UeXBlLA0KICBjcnVkRGF0YURpY3Rpb25hcnksDQogIGNydWRGaWxlUGF0aCwNCiAgY3J1ZEFzc29jaWF0aW9uVGFibGUsDQogIGNydWRBc3NvY2lhdGlvblRhYmxlTmFtZSwNCiAgY3J1ZERhdGFEaWN0aW9uYXJ5TGlzdCwNCiAgc2F2ZUNydWREYXRhRGljdGlvbmFyeUxpc3QsDQogIGdldERhdGFEaWN0aW9uYXJ5TGlzdCwNCn0gZnJvbSAnQC9hcGkvc3lzdGVtQ29kZUdlbmVyYXRpb24nOw0KaW1wb3J0IFNvcnRhYmxlIGZyb20gJ3NvcnRhYmxlanMnOw0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnJywNCiAgcHJvcHM6IHsNCiAgICBmb3VuZGF0aW9uOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0OiAoKSA9PiB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICAgIH0sDQogICAgfSwNCiAgICBpZDogew0KICAgICAgdHlwZTogU3RyaW5nIHwgTnVtYmVyLA0KICAgIH0sDQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGZvdW5kYXRpb25SdWxlczoge30sDQogICAgICBtZW51c0xpc3Q6IFtdLA0KICAgICAgY29sdW1uVHlwZUxpc3Q6IFtdLA0KICAgICAgb3B0aW9uc01vZGFsOiBmYWxzZSwNCiAgICAgIGlzQ3JlYXRlOiBmYWxzZSwNCiAgICAgIGlzRGVsZXRlOiBmYWxzZSwNCiAgICAgIGZyb21UeXBlTGlzdDogW10sDQogICAgICBsb2FkaW5nOiBmYWxzZSwNCiAgICAgIHRhYmxlRmllbGQ6IFtdLA0KICAgICAgb3B0aW9uc0xpc3Q6IFtdLA0KICAgICAgaW5kZXg6IDAsDQogICAgICBkZWxldGVGaWVsZDogW10sDQogICAgICBzZWFyY2hUeXBlOiBbXSwNCiAgICAgIGRpY3Rpb25hcnlOYW1lOiAnJywgLy8g5a2X5YW45ZCN56ewDQogICAgICBkZWZhdWx0VHlwZTogW10sIC8vIOm7mOiupOexu+Weiw0KICAgICAgYXNzb2NpYXRpb25UYWJsZTogW10sIC8vIOWFs+iBlOihqA0KICAgICAgZGljdGlvbmFyeUxpc3Q6IFtdLA0KICAgICAgcHJvcHM6IHsNCiAgICAgICAgbGF6eTogdHJ1ZSwNCiAgICAgICAgb3B0aW9uczogdGhpcy5hc3NvY2lhdGlvblRhYmxlLA0KICAgICAgICBjaGVja1N0cmljdGx5OiB0cnVlLA0KICAgICAgICBsYXp5TG9hZChub2RlLCByZXNvbHZlKSB7DQogICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gbm9kZTsNCiAgICAgICAgICBpZiAodmFsdWUpIHsNCiAgICAgICAgICAgIGNydWRBc3NvY2lhdGlvblRhYmxlTmFtZSh2YWx1ZSkudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgICAgIHJlc29sdmUocmVzLmRhdGEpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIC8vIOmAmui/h+iwg+eUqHJlc29sdmXlsIblrZDoioLngrnmlbDmja7ov5Tlm57vvIzpgJrnn6Xnu4Tku7bmlbDmja7liqDovb3lrozmiJANCiAgICAgICAgfSwNCiAgICAgIH0sDQogICAgfTsNCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmdldENydWRNZW51cygpOw0KICB9LA0KICBtb3VudGVkKCkgew0KICAgIHRoaXMuJG5leHRUaWNrKChlKSA9PiB7DQogICAgICB0aGlzLnNldFNvcnQoKTsNCiAgICB9KTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGJlZm9yZUNoYW5nZSgpIHsNCiAgICAgIHRoaXMuZ2V0Q3J1ZERhdGFEaWN0aW9uYXJ5KCk7DQogICAgfSwNCiAgICBzZXRTb3J0KCkgew0KICAgICAgLy8gcmVm5LiA5a6a6LefdGFibGXkuIrpnaLnmoRyZWbkuIDoh7QNCiAgICAgIGNvbnN0IGVsID0gdGhpcy4kcmVmcy5zZWxlY3Rpb24uJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbC10YWJsZV9fYm9keS13cmFwcGVyID4gdGFibGUgPiB0Ym9keScpWzBdOw0KICAgICAgdGhpcy5zb3J0YWJsZSA9IFNvcnRhYmxlLmNyZWF0ZShlbCwgew0KICAgICAgICBnaG9zdENsYXNzOiAnc29ydGFibGUtZ2hvc3QnLA0KICAgICAgICBoYW5kbGU6ICcuaGFuZGxlJywNCiAgICAgICAgc2V0RGF0YTogZnVuY3Rpb24gKGRhdGFUcmFuc2Zlcikgew0KICAgICAgICAgIGRhdGFUcmFuc2Zlci5zZXREYXRhKCdUZXh0JywgJycpOw0KICAgICAgICB9LA0KICAgICAgICAvLyDnm5HlkKzmi5bmi73kuovku7bnu5PmnZ/ml7bop6blj5ENCiAgICAgICAgb25FbmQ6IChldnQpID0+IHsNCiAgICAgICAgICBpZiAoZXZ0Lm5ld0luZGV4ID09PSAwKSB7DQogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgdGhpcy5lbENoYW5nZUV4Rm9yQXJyYXkoZXZ0Lm9sZEluZGV4LCBldnQubmV3SW5kZXgsIHRoaXMudGFibGVGaWVsZCwgdHJ1ZSk7DQogICAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB0aGlzLmVsQ2hhbmdlRXhGb3JBcnJheShldnQub2xkSW5kZXgsIGV2dC5uZXdJbmRleCwgdGhpcy50YWJsZUZpZWxkKTsNCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICB9KTsNCiAgICB9LA0KICAgIGVsQ2hhbmdlRXhGb3JBcnJheShpbmRleDEsIGluZGV4MiwgYXJyYXksIGluaXQpIHsNCiAgICAgIGNvbnN0IGFyciA9IGFycmF5Ow0KICAgICAgY29uc3QgdGVtcCA9IGFycmF5W2luZGV4MV07DQogICAgICBjb25zdCB0ZW1wdCA9IGFycmF5W2luZGV4Ml07DQogICAgICBpZiAoaW5pdCkgew0KICAgICAgICBhcnJbaW5kZXgyXSA9IHRlbXB0Ow0KICAgICAgICBhcnJbaW5kZXgxXSA9IHRlbXA7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhcnJbaW5kZXgxXSA9IHRlbXB0Ow0KICAgICAgICBhcnJbaW5kZXgyXSA9IHRlbXA7DQogICAgICB9DQogICAgICB0aGlzLnRhYmxlRmllbGQgPSBbXTsNCiAgICAgIHRoaXMuJG5leHRUaWNrKChlKSA9PiB7DQogICAgICAgIHRoaXMudGFibGVGaWVsZCA9IGFycjsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgZGlzYWJsZWRJbnB1dChpbmRleCkgew0KICAgICAgbGV0IGZpZWxkSW5mbyA9IHRoaXMudGFibGVGaWVsZFtpbmRleF07DQogICAgICBsZXQgcmVzID0gWydhZGRUaW1lc3RhbXBzJywgJ2FkZFNvZnREZWxldGUnXS5pbmNsdWRlcyh0aGlzLnRhYmxlRmllbGRbaW5kZXhdLmZpZWxkX3R5cGUpOw0KICAgICAgaWYgKGZpZWxkSW5mby5wcmltYXJ5S2V5KSB7DQogICAgICAgIHJlcyA9IHRydWU7DQogICAgICB9IGVsc2UgaWYgKGZpZWxkSW5mby5maWVsZCA9PT0gJ2RlbGV0ZV90aW1lJyAmJiBmaWVsZEluZm8uZmllbGRfdHlwZSA9PT0gJ3RpbWVzdGFtcCcpIHsNCiAgICAgICAgcmVzID0gdHJ1ZTsNCiAgICAgIH0gZWxzZSBpZiAoDQogICAgICAgIChmaWVsZEluZm8uZmllbGQgPT09ICdjcmVhdGVfdGltZScgfHwgZmllbGRJbmZvLmZpZWxkID09PSAndXBkYXRlX3RpbWUnKSAmJg0KICAgICAgICBmaWVsZEluZm8uZmllbGRfdHlwZSA9PT0gJ3RpbWVzdGFtcCcNCiAgICAgICkgew0KICAgICAgICByZXMgPSB0cnVlOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIHJlczsNCiAgICB9LA0KICAgIGluaXRmaWVsZCgpIHsNCiAgICAgIHRoaXMudGFibGVGaWVsZCA9IFtdOw0KICAgIH0sDQogICAgY2hhbmdlSXRlbUZpZWxkKGUsIGkpIHsNCiAgICAgIGlmIChlID09PSAnYWRkU29mdERlbGV0ZScpIHsNCiAgICAgICAgdGhpcy4kc2V0KHRoaXMudGFibGVGaWVsZFtpXSwgJ2NvbW1lbnQnLCAn5Lyq5Yig6ZmkJyk7DQogICAgICB9DQogICAgICBpZiAoZSA9PT0gJ2FkZFRpbWVzdGFtcHMnKSB7DQogICAgICAgIHRoaXMuJHNldCh0aGlzLnRhYmxlRmllbGRbaV0sICdjb21tZW50JywgJ+a3u+WKoOWSjOS/ruaUueaXtumXtCcpOw0KICAgICAgfQ0KICAgIH0sDQogICAgZWlkdE9wdGlvbnMoaSkgew0KICAgICAgdGhpcy5pbmRleCA9IGk7DQogICAgICB0aGlzLmRpY3Rpb25hcnlJZCA9IHRoaXMudGFibGVGaWVsZFtpXS5kaWN0aW9uYXJ5X2lkIHx8IDA7DQogICAgICB0aGlzLm9wdGlvbnNNb2RhbCA9IHRydWU7DQogICAgICBpZiAodGhpcy5kaWN0aW9uYXJ5SWQpIHsNCiAgICAgICAgY3J1ZERhdGFEaWN0aW9uYXJ5TGlzdCh0aGlzLmRpY3Rpb25hcnlJZCkudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5TmFtZSA9IHJlcy5kYXRhLm5hbWU7DQogICAgICAgICAgdGhpcy5vcHRpb25zTGlzdCA9IHJlcy5kYXRhLnZhbHVlIHx8IFt7IGxhYmVsOiAnJywgdmFsdWU6ICcnIH1dOw0KICAgICAgICB9KTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMub3B0aW9uc0xpc3QgPSBbeyBsYWJlbDogJycsIHZhbHVlOiAnJyB9XTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGFkZE9wdGlvbnMoKSB7DQogICAgICAvLyB0aGlzLiRzZXQodGhpcy50YWJsZUZpZWxkW3RoaXMuaW5kZXhdLCAnb3B0aW9ucycsIHRoaXMub3B0aW9uc0xpc3QpOw0KICAgICAgbGV0IGQgPSB7DQogICAgICAgIG5hbWU6IHRoaXMuZGljdGlvbmFyeU5hbWUsDQogICAgICAgIHZhbHVlOiB0aGlzLm9wdGlvbnNMaXN0LA0KICAgICAgfTsNCiAgICAgIHNhdmVDcnVkRGF0YURpY3Rpb25hcnlMaXN0KHRoaXMuZGljdGlvbmFyeUlkLCBkKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgdGhpcy5vcHRpb25zTW9kYWwgPSBmYWxzZTsNCiAgICAgICAgdGhpcy5nZXRDcnVkRGF0YURpY3Rpb25hcnkoKTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgY2hhbmdlUmFkaW8oc3RhdHVzKSB7DQogICAgICB0aGlzLnRhYmxlRmllbGQgPSBbXTsNCiAgICAgIGlmIChzdGF0dXMpIHsNCiAgICAgICAgdGhpcy5hZGRSb3coKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGluaXRUYWJsZU5hbWUoKSB7DQogICAgICB0aGlzLnRhYmxlRmllbGQgPSBbXTsNCiAgICB9LA0KICAgIGFkZFJvdygpIHsNCiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YWJsZUZpZWxkLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGNvbnN0IGVsID0gdGhpcy50YWJsZUZpZWxkW2ldOw0KICAgICAgICBpZiAoKCFlbC5maWVsZCB8fCAhZWwuZmllbGRfdHlwZSkgJiYgIVsnYWRkVGltZXN0YW1wcycsICdhZGRTb2Z0RGVsZXRlJ10uaW5jbHVkZXMoZWwuZmllbGRfdHlwZSkpIHsNCiAgICAgICAgICByZXR1cm4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7flhYjlrozlloTkuIrkuIDmnaHmlbDmja4nKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoDQogICAgICAgICAgZWwuaXNfdGFibGUgJiYNCiAgICAgICAgICAhZWwudGFibGVfbmFtZSAmJg0KICAgICAgICAgICFOdW1iZXIoZWwucHJpbWFyeUtleSkgJiYNCiAgICAgICAgICAhWydhZGRUaW1lc3RhbXBzJywgJ2FkZFNvZnREZWxldGUnXS5pbmNsdWRlcyhlbC5maWVsZF90eXBlKQ0KICAgICAgICApIHsNCiAgICAgICAgICByZXR1cm4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7fovpPlhaXliJfooajlkI0nKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgbGV0IGkgPSB0aGlzLnRhYmxlRmllbGQubGVuZ3RoOw0KICAgICAgbGV0IHNwbGljZUluZGV4ID0gMDsNCiAgICAgIHRoaXMudGFibGVGaWVsZC5tYXAoKGUpID0+IHsNCiAgICAgICAgaWYgKGUuZmllbGQgPT09ICdjcmVhdGVfdGltZScgfHwgZS5maWVsZCA9PT0gJ3VwZGF0ZV90aW1lJykgew0KICAgICAgICAgIHNwbGljZUluZGV4Kys7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGUuZmllbGQgPT09ICdkZWxldGVfdGltZScpIHsNCiAgICAgICAgICBzcGxpY2VJbmRleCsrOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICAgIGkgPSB0aGlzLnRhYmxlRmllbGQubGVuZ3RoIC0gc3BsaWNlSW5kZXg7DQogICAgICB0aGlzLnRhYmxlRmllbGQuc3BsaWNlKGksIDAsIHsNCiAgICAgICAgZmllbGQ6ICcnLA0KICAgICAgICBmaWVsZF90eXBlOiAnJywNCiAgICAgICAgZGVmYXVsdDogJycsDQogICAgICAgIGRlZmF1bHRfdHlwZTogJy0xJywNCiAgICAgICAgY29tbWVudDogJycsDQogICAgICAgIHJlcXVpcmVkOiBmYWxzZSwNCiAgICAgICAgaXNfdGFibGU6IHRydWUsDQogICAgICAgIHRhYmxlX25hbWU6ICcnLA0KICAgICAgICBsaW1pdDogJycsDQogICAgICAgIHByaW1hcnlLZXk6IDAsDQogICAgICAgIGZyb21fdHlwZTogJycsDQogICAgICAgIHNlYXJjaDogJycsDQogICAgICAgIGRpY3Rpb25hcnlfaWQ6IDAsDQogICAgICAgIGhhc09uZTogW10sDQogICAgICAgIGluZGV4OiBmYWxzZSwNCiAgICAgIH0pOw0KICAgICAgLy8gdGhpcy50YWJsZUZpZWxkLnB1c2goKTsNCiAgICB9LA0KICAgIGFkZENyZWF0ZShzdGF0dXMpIHsNCiAgICAgIGlmIChzdGF0dXMpIHsNCiAgICAgICAgbGV0IGhhdmVDcmUgPSB0aGlzLnRhYmxlRmllbGQuZmluZEluZGV4KChlKSA9PiBlLmZpZWxkID09PSAnY3JlYXRlX3RpbWUnKTsNCiAgICAgICAgbGV0IGhhdmVVcCA9IHRoaXMudGFibGVGaWVsZC5maW5kSW5kZXgoKGUpID0+IGUuZmllbGQgPT09ICd1cGRhdGVfdGltZScpOw0KICAgICAgICBpZiAoaGF2ZUNyZSA+IDAgfHwgaGF2ZVVwID4gMCkgew0KICAgICAgICAgIHRoaXMuJG5leHRUaWNrKChlKSA9PiB7DQogICAgICAgICAgICB0aGlzLmlzQ3JlYXRlID0gZmFsc2U7DQogICAgICAgICAgfSk7DQogICAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn5bey5a2Y5ZyoIGNyZWF0ZV90aW1l5oiWdXBkYXRlX3RpbWUnKTsNCiAgICAgICAgfQ0KICAgICAgICBsZXQgZGF0YSA9IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICBmaWVsZDogJ2NyZWF0ZV90aW1lJywNCiAgICAgICAgICAgIGZpZWxkX3R5cGU6ICd0aW1lc3RhbXAnLA0KICAgICAgICAgICAgZGVmYXVsdDogJycsDQogICAgICAgICAgICBkZWZhdWx0X3R5cGU6ICctMScsDQogICAgICAgICAgICBjb21tZW50OiAn5re75Yqg5pe26Ze0JywNCiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSwNCiAgICAgICAgICAgIGlzX3RhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIHRhYmxlX25hbWU6ICfmt7vliqDml7bpl7QnLA0KICAgICAgICAgICAgbGltaXQ6ICcnLA0KICAgICAgICAgICAgcHJpbWFyeUtleTogMCwNCiAgICAgICAgICAgIGZyb21fdHlwZTogJycsDQogICAgICAgICAgICBzZWFyY2g6ICcnLA0KICAgICAgICAgICAgZGljdGlvbmFyeV9pZDogMCwNCiAgICAgICAgICAgIGhhc09uZTogW10sDQogICAgICAgICAgICBpbmRleDogZmFsc2UsDQogICAgICAgICAgfSwNCiAgICAgICAgICB7DQogICAgICAgICAgICBmaWVsZDogJ3VwZGF0ZV90aW1lJywNCiAgICAgICAgICAgIGZpZWxkX3R5cGU6ICd0aW1lc3RhbXAnLA0KICAgICAgICAgICAgZGVmYXVsdF90eXBlOiAnLTEnLA0KICAgICAgICAgICAgZGVmYXVsdDogJycsDQogICAgICAgICAgICBjb21tZW50OiAn5L+u5pS55pe26Ze0JywNCiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSwNCiAgICAgICAgICAgIGlzX3RhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIHRhYmxlX25hbWU6ICfkv67mlLnml7bpl7QnLA0KICAgICAgICAgICAgbGltaXQ6ICcnLA0KICAgICAgICAgICAgcHJpbWFyeUtleTogMCwNCiAgICAgICAgICAgIGZyb21fdHlwZTogJycsDQogICAgICAgICAgICBzZWFyY2g6ICcnLA0KICAgICAgICAgICAgZGljdGlvbmFyeV9pZDogMCwNCiAgICAgICAgICAgIGhhc09uZTogW10sDQogICAgICAgICAgICBpbmRleDogZmFsc2UsDQogICAgICAgICAgfSwNCiAgICAgICAgXTsNCiAgICAgICAgdGhpcy50YWJsZUZpZWxkID0gWy4uLnRoaXMudGFibGVGaWVsZCwgLi4uZGF0YV07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBsZXQgaSA9IHRoaXMudGFibGVGaWVsZC5maW5kSW5kZXgoKGUpID0+IGUuZmllbGQgPT09ICdjcmVhdGVfdGltZScpOw0KICAgICAgICB0aGlzLnRhYmxlRmllbGQuc3BsaWNlKGksIDIpOw0KICAgICAgfQ0KICAgIH0sDQogICAgYWRkRGVsZXRlKHN0YXR1cykgew0KICAgICAgaWYgKHN0YXR1cykgew0KICAgICAgICBsZXQgaGF2ZURlbCA9IHRoaXMudGFibGVGaWVsZC5maW5kSW5kZXgoKGUpID0+IGUuZmllbGQgPT09ICdkZWxldGVfdGltZScpOw0KICAgICAgICBpZiAoaGF2ZURlbCA+IDApIHsNCiAgICAgICAgICB0aGlzLmlzRGVsZXRlID0gZmFsc2U7DQogICAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn5bey5a2Y5ZyoIGRlbGV0ZV90aW1lJyk7DQogICAgICAgIH0NCiAgICAgICAgbGV0IGRhdGEgPSBbDQogICAgICAgICAgew0KICAgICAgICAgICAgZmllbGQ6ICdkZWxldGVfdGltZScsDQogICAgICAgICAgICBmaWVsZF90eXBlOiAndGltZXN0YW1wJywNCiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLA0KICAgICAgICAgICAgZGVmYXVsdF90eXBlOiAnLTEnLA0KICAgICAgICAgICAgY29tbWVudDogJ+S8quWIoOmZpCcsDQogICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsDQogICAgICAgICAgICBpc190YWJsZTogZmFsc2UsDQogICAgICAgICAgICB0YWJsZV9uYW1lOiAn5Lyq5Yig6ZmkJywNCiAgICAgICAgICAgIGxpbWl0OiAnJywNCiAgICAgICAgICAgIHByaW1hcnlLZXk6IDAsDQogICAgICAgICAgICBmcm9tX3R5cGU6ICcnLA0KICAgICAgICAgICAgc2VhcmNoOiAnJywNCiAgICAgICAgICAgIGRpY3Rpb25hcnlfaWQ6IDAsDQogICAgICAgICAgICBoYXNPbmU6IFtdLA0KICAgICAgICAgICAgaW5kZXg6IGZhbHNlLA0KICAgICAgICAgIH0sDQogICAgICAgIF07DQogICAgICAgIHRoaXMudGFibGVGaWVsZCA9IFsuLi50aGlzLnRhYmxlRmllbGQsIC4uLmRhdGFdOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgbGV0IGkgPSB0aGlzLnRhYmxlRmllbGQuZmluZEluZGV4KChlKSA9PiBlLmZpZWxkID09PSAnZGVsZXRlX3RpbWUnKTsNCiAgICAgICAgdGhpcy50YWJsZUZpZWxkLnNwbGljZShpLCAxKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNoYW5nZUZpZWxkKGluZGV4KSB7DQogICAgICBpZiAodGhpcy50YWJsZUZpZWxkW2luZGV4XS5maWVsZCkgew0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFibGVGaWVsZC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgIGNvbnN0IGUgPSB0aGlzLnRhYmxlRmllbGRbaV07DQogICAgICAgICAgaWYgKFsnaWQnLCAnY3JlYXRlX3RpbWUnLCAndXBkYXRlX3RpbWUnLCAnZGVsZXRlX3RpbWUnXS5pbmNsdWRlcyh0aGlzLnRhYmxlRmllbGRbaW5kZXhdLmZpZWxkKSkgew0KICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfliJfooajkuK3lt7LlrZjlnKjor6XlrZfmrrXlkI3np7AnKTsNCiAgICAgICAgICAgIHRoaXMudGFibGVGaWVsZFtpbmRleF0uZmllbGQgPSAnJzsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIGNoYW5nZUNvbW1lbnQoZSwgaW5kZXgpIHsNCiAgICAgIGlmICghdGhpcy50YWJsZUZpZWxkW2luZGV4XS5jb21tZW50KSB0aGlzLnRhYmxlRmllbGRbaW5kZXhdLmNvbW1lbnQgPSBlOw0KICAgIH0sDQogICAgZnJvbVR5cGVDaGFuZ2UoZSwgaW5kZXgpIHsNCiAgICAgIHRoaXMuZnJvbVR5cGVMaXN0Lm1hcCgoaXRlbSkgPT4gew0KICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PSBlKSB7DQogICAgICAgICAgdGhpcy50YWJsZUZpZWxkW2luZGV4XS5saW1pdCA9IGl0ZW0ubGltaXQgfHwgJyc7DQogICAgICAgICAgdGhpcy50YWJsZUZpZWxkW2luZGV4XS5maWVsZF90eXBlID0gaXRlbS5maWVsZF90eXBlIHx8ICcnOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICAgIC8vIGlmICghdGhpcy50YWJsZUZpZWxkW2luZGV4XS5jb21tZW50KSB0aGlzLnRhYmxlRmllbGRbaW5kZXhdLmNvbW1lbnQgPSBlOw0KICAgIH0sDQogICAgZ2V0Q3J1ZE1lbnVzKCkgew0KICAgICAgY3J1ZE1lbnVzKCkudGhlbigocmVzKSA9PiB7DQogICAgICAgIHRoaXMubWVudXNMaXN0ID0gcmVzLmRhdGE7DQogICAgICB9KTsNCiAgICAgIGNydWRDb2x1bW5UeXBlKCkudGhlbigocmVzKSA9PiB7DQogICAgICAgIHRoaXMuY29sdW1uVHlwZUxpc3QgPSByZXMuZGF0YS50eXBlczsNCiAgICAgICAgdGhpcy5mcm9tVHlwZUxpc3QgPSByZXMuZGF0YS5mb3JtOw0KICAgICAgICB0aGlzLmRlZmF1bHRUeXBlID0gcmVzLmRhdGEuZGVmYXVsdF90eXBlOw0KICAgICAgICB0aGlzLnNlYXJjaFR5cGUgPSByZXMuZGF0YS5zZWFyY2hfdHlwZTsNCiAgICAgIH0pOw0KICAgICAgdGhpcy5nZXRDcnVkRGF0YURpY3Rpb25hcnkoKTsNCiAgICAgIGNydWRBc3NvY2lhdGlvblRhYmxlKCkudGhlbigocmVzKSA9PiB7DQogICAgICAgIHRoaXMuYXNzb2NpYXRpb25UYWJsZSA9IHJlcy5kYXRhOw0KICAgICAgfSk7DQogICAgfSwNCiAgICBnZXRDcnVkRGF0YURpY3Rpb25hcnkoKSB7DQogICAgICBnZXREYXRhRGljdGlvbmFyeUxpc3QoKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgdGhpcy5kaWN0aW9uYXJ5TGlzdCA9IHJlcy5kYXRhLmxpc3Q7DQogICAgICB9KTsNCiAgICB9LA0KICAgIGdldENydWRBc3NvY2lhdGlvblRhYmxlTmFtZShuYW1lKSB7DQogICAgICBjcnVkQXNzb2NpYXRpb25UYWJsZU5hbWUobmFtZSkudGhlbigocmVzKSA9PiB7DQogICAgICAgIGNvbnNvbGUubG9nKHJlcyk7DQogICAgICB9KTsNCiAgICB9LA0KICAgIGRlbChyb3csIGluZGV4KSB7DQogICAgICB0aGlzLnRhYmxlRmllbGQuc3BsaWNlKGluZGV4LCAxKTsNCiAgICAgIGlmICh0aGlzLmlkKSB7DQogICAgICAgIHRoaXMuZGVsZXRlRmllbGQucHVzaChyb3cuZmllbGQpOw0KICAgICAgfQ0KICAgIH0sDQogICAgYWRkT25lT3B0aW9ucygpIHsNCiAgICAgIHRoaXMub3B0aW9uc0xpc3QucHVzaCh7DQogICAgICAgIGxhYmVsOiAnJywNCiAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgfSk7DQogICAgfSwNCiAgICBkZWxPbmVPcHRpb25zKGkpIHsNCiAgICAgIHRoaXMub3B0aW9uc0xpc3Quc3BsaWNlKGksIDEpOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["TableForm.vue"],"names":[],"mappings":";AAwQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"TableForm.vue","sourceRoot":"src/pages/system/codeGeneration/components","sourcesContent":["<template>\r\n <div class=\"main\">\r\n <el-alert closable class=\"mb14\">\r\n <template v-slot:title>crud生成说明</template>\r\n <template>\r\n <p>\r\n 1、字段配置中表存在生成的字段为表内列的信息,并且主键、伪删除字段不允许设置为列,主键默认展示在列表中,伪删除字段不允许展示\r\n </p>\r\n <p>2、在字段配置中新建表时,主键不需要增加列,会自动增加一行主键id</p>\r\n <p>3、在字段配置中,表单类型为不生成时创建后不会生成对应的表单项</p>\r\n <p>4、添加字段id、create_time、update_time、delete_time为不可用字段</p>\r\n </template>\r\n </el-alert>\r\n <div class=\"df mb14\">\r\n <el-button class=\"mr20\" type=\"primary\" v-db-click @click=\"addRow\">添加一行</el-button>\r\n <el-checkbox class=\"mr10\" v-model=\"isCreate\" @change=\"addCreate\">添加与修改时间</el-checkbox>\r\n <el-checkbox class=\"mr10\" v-model=\"isDelete\" @change=\"addDelete\">伪删除</el-checkbox>\r\n </div>\r\n <div>\r\n <el-table\r\n ref=\"selection\"\r\n :data=\"tableField\"\r\n empty-text=\"暂无数据\"\r\n highlight-current-row\r\n v-loading=\"loading\"\r\n max-height=\"600\"\r\n size=\"small\"\r\n >\r\n <el-table-column label=\"\" min-width=\"40\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"drag\" v-if=\"!disabledInput(scope.$index)\">\r\n <img class=\"handle\" src=\"@/assets/images/drag-icon.png\" alt=\"\" />\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"表单名\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-input\r\n v-model=\"scope.row.table_name\"\r\n :disabled=\"disabledInput(scope.$index) && scope.row.field == 'id'\"\r\n @change=\"(e) => changeComment(e, scope.$index)\"\r\n ></el-input>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"表单类型\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-select\r\n clearable\r\n v-model=\"scope.row.from_type\"\r\n :disabled=\"disabledInput(scope.$index) && scope.row.field == 'id'\"\r\n @change=\"(e) => fromTypeChange(e, scope.$index)\"\r\n >\r\n <el-option\r\n v-for=\"item in fromTypeList\"\r\n :value=\"item.value\"\r\n :key=\"item.value\"\r\n :label=\"item.label\"\r\n ></el-option>\r\n </el-select>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"数据字典\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"table-options\" v-if=\"['select', 'radio', 'checkbox'].includes(scope.row.from_type)\">\r\n <el-select clearable v-model=\"scope.row.dictionary_id\">\r\n <el-option\r\n v-for=\"item in dictionaryList\"\r\n :value=\"item.id\"\r\n :key=\"item.id\"\r\n :label=\"item.name\"\r\n ></el-option>\r\n </el-select>\r\n <!-- <i class=\"el-icon-edit create\" v-db-click @click=\"eidtOptions(scope.$index)\" /> -->\r\n </div>\r\n <div v-else>--</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"必填\" width=\"50\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox\r\n v-model=\"scope.row.required\"\r\n :disabled=\"disabledInput(scope.$index) && scope.row.field == 'id'\"\r\n ></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n\r\n <el-table-column label=\"查询方式\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-select\r\n clearable\r\n v-model=\"scope.row.search\"\r\n :disabled=\"disabledInput(scope.$index)\"\r\n slot=\"prepend\"\r\n placeholder=\"请选择\"\r\n >\r\n <el-option\r\n :label=\"item.label\"\r\n :value=\"item.value\"\r\n v-for=\"item in searchType\"\r\n :key=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"列表\" width=\"50\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox\r\n v-model=\"scope.row.is_table\"\r\n :disabled=\"disabledInput(scope.$index) && scope.row.field == 'id'\"\r\n ></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"字段名称\" min-width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <el-input\r\n :disabled=\"disabledInput(scope.$index)\"\r\n v-model=\"scope.row.field\"\r\n @blur=\"changeField(scope.$index)\"\r\n ></el-input>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"字段类型\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-select\r\n v-model=\"scope.row.field_type\"\r\n :disabled=\"disabledInput(scope.$index)\"\r\n clearable\r\n @change=\"changeItemField($event, scope.$index)\"\r\n >\r\n <el-option v-for=\"item in columnTypeList\" :value=\"item\" :key=\"item\" :label=\"item\"></el-option>\r\n </el-select>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"长度\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <el-input\r\n v-if=\"scope.row.field_type !== 'enum'\"\r\n v-model=\"scope.row.limit\"\r\n :disabled=\"disabledInput(scope.$index)\"\r\n ></el-input>\r\n <el-select\r\n v-else\r\n v-model=\"scope.row.limit\"\r\n multiple\r\n filterable\r\n allow-create\r\n clearable\r\n default-first-option\r\n placeholder=\"请添加\"\r\n />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"默认值\" min-width=\"180\">\r\n <template slot-scope=\"scope\">\r\n <el-input\r\n class=\"input-with-select\"\r\n v-model=\"scope.row.default\"\r\n :disabled=\"disabledInput(scope.$index) || scope.row.default_type !== '1'\"\r\n >\r\n <el-select\r\n class=\"code-table-sel\"\r\n clearable\r\n v-model=\"scope.row.default_type\"\r\n slot=\"prepend\"\r\n :disabled=\"disabledInput(scope.$index)\"\r\n placeholder=\"请选择\"\r\n style=\"width: 100px\"\r\n >\r\n <el-option\r\n :label=\"item.label\"\r\n :value=\"item.value\"\r\n v-for=\"item in defaultType\"\r\n :key=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </el-input>\r\n <!-- <el-option v-for=\"item in options\" :key=\"item.value\" :label=\"item.label\" :value=\"item.value\"> </el-option> -->\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"字段描述\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-input v-model=\"scope.row.comment\" :disabled=\"disabledInput(scope.$index)\"></el-input>\r\n </template>\r\n </el-table-column>\r\n\r\n <el-table-column label=\"关联表\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-cascader\r\n clearable\r\n filterable\r\n v-model=\"scope.row.hasOne\"\r\n :disabled=\"disabledInput(scope.$index) && scope.row.field == 'id'\"\r\n :options=\"associationTable\"\r\n :props=\"props\"\r\n ></el-cascader>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"索引\" width=\"50\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox\r\n v-model=\"scope.row.index\"\r\n :disabled=\"disabledInput(scope.$index) && scope.row.field == 'id'\"\r\n ></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <a v-if=\"!scope.row.primaryKey && !disabledInput(scope.$index)\" v-db-click @click=\"del(row, scope.$index)\"\r\n >删除</a\r\n >\r\n <span v-else>--</span>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n <el-dialog\r\n :visible.sync=\"optionsModal\"\r\n title=\"字典配置\"\r\n @close=\"beforeChange\"\r\n :close-on-click-modal=\"false\"\r\n width=\"600px\"\r\n >\r\n <div class=\"options-list\">\r\n <el-form ref=\"form\" :inline=\"true\" label-width=\"80px\">\r\n <div class=\"mb10\">\r\n <el-form-item label=\"字典名称:\">\r\n <el-input class=\"mr10\" v-model=\"dictionaryName\" placeholder=\"字典名称\" style=\"width: 310px\" />\r\n </el-form-item>\r\n </div>\r\n <div class=\"item\" v-for=\"(item, index) in optionsList\" :key=\"index\">\r\n <el-form-item label=\"数据名称:\">\r\n <el-input class=\"mr10\" v-model=\"item.label\" placeholder=\"label\" style=\"width: 150px\" />\r\n </el-form-item>\r\n <el-form-item label=\"数据值:\">\r\n <el-input class=\"mr10\" v-model=\"item.value\" placeholder=\"value\" style=\"width: 150px\" />\r\n </el-form-item>\r\n <div style=\"display: inline-block; margin-bottom: 14px\">\r\n <i\r\n v-if=\"index == optionsList.length - 1\"\r\n class=\"el-icon-circle-plus-outline add\"\r\n title=\"新增\"\r\n v-db-click\r\n @click=\"addOneOptions\"\r\n />\r\n <i\r\n v-if=\"index > 0\"\r\n class=\"el-icon-remove-outline delete\"\r\n title=\"删除\"\r\n v-db-click\r\n @click=\"delOneOptions(index)\"\r\n />\r\n </div>\r\n </div>\r\n </el-form>\r\n </div>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"optionsModal = false\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"addOptions\">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n crudMenus,\r\n crudColumnType,\r\n crudDataDictionary,\r\n crudFilePath,\r\n crudAssociationTable,\r\n crudAssociationTableName,\r\n crudDataDictionaryList,\r\n saveCrudDataDictionaryList,\r\n getDataDictionaryList,\r\n} from '@/api/systemCodeGeneration';\r\nimport Sortable from 'sortablejs';\r\nexport default {\r\n name: '',\r\n props: {\r\n foundation: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n id: {\r\n type: String | Number,\r\n },\r\n },\r\n data() {\r\n return {\r\n foundationRules: {},\r\n menusList: [],\r\n columnTypeList: [],\r\n optionsModal: false,\r\n isCreate: false,\r\n isDelete: false,\r\n fromTypeList: [],\r\n loading: false,\r\n tableField: [],\r\n optionsList: [],\r\n index: 0,\r\n deleteField: [],\r\n searchType: [],\r\n dictionaryName: '', // 字典名称\r\n defaultType: [], // 默认类型\r\n associationTable: [], // 关联表\r\n dictionaryList: [],\r\n props: {\r\n lazy: true,\r\n options: this.associationTable,\r\n checkStrictly: true,\r\n lazyLoad(node, resolve) {\r\n const { value } = node;\r\n if (value) {\r\n crudAssociationTableName(value).then((res) => {\r\n resolve(res.data);\r\n });\r\n }\r\n // 通过调用resolve将子节点数据返回,通知组件数据加载完成\r\n },\r\n },\r\n };\r\n },\r\n created() {\r\n this.getCrudMenus();\r\n },\r\n mounted() {\r\n this.$nextTick((e) => {\r\n this.setSort();\r\n });\r\n },\r\n methods: {\r\n beforeChange() {\r\n this.getCrudDataDictionary();\r\n },\r\n setSort() {\r\n // ref一定跟table上面的ref一致\r\n const el = this.$refs.selection.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0];\r\n this.sortable = Sortable.create(el, {\r\n ghostClass: 'sortable-ghost',\r\n handle: '.handle',\r\n setData: function (dataTransfer) {\r\n dataTransfer.setData('Text', '');\r\n },\r\n // 监听拖拽事件结束时触发\r\n onEnd: (evt) => {\r\n if (evt.newIndex === 0) {\r\n setTimeout(() => {\r\n this.elChangeExForArray(evt.oldIndex, evt.newIndex, this.tableField, true);\r\n }, 100);\r\n } else {\r\n this.elChangeExForArray(evt.oldIndex, evt.newIndex, this.tableField);\r\n }\r\n },\r\n });\r\n },\r\n elChangeExForArray(index1, index2, array, init) {\r\n const arr = array;\r\n const temp = array[index1];\r\n const tempt = array[index2];\r\n if (init) {\r\n arr[index2] = tempt;\r\n arr[index1] = temp;\r\n } else {\r\n arr[index1] = tempt;\r\n arr[index2] = temp;\r\n }\r\n this.tableField = [];\r\n this.$nextTick((e) => {\r\n this.tableField = arr;\r\n });\r\n },\r\n disabledInput(index) {\r\n let fieldInfo = this.tableField[index];\r\n let res = ['addTimestamps', 'addSoftDelete'].includes(this.tableField[index].field_type);\r\n if (fieldInfo.primaryKey) {\r\n res = true;\r\n } else if (fieldInfo.field === 'delete_time' && fieldInfo.field_type === 'timestamp') {\r\n res = true;\r\n } else if (\r\n (fieldInfo.field === 'create_time' || fieldInfo.field === 'update_time') &&\r\n fieldInfo.field_type === 'timestamp'\r\n ) {\r\n res = true;\r\n }\r\n return res;\r\n },\r\n initfield() {\r\n this.tableField = [];\r\n },\r\n changeItemField(e, i) {\r\n if (e === 'addSoftDelete') {\r\n this.$set(this.tableField[i], 'comment', '伪删除');\r\n }\r\n if (e === 'addTimestamps') {\r\n this.$set(this.tableField[i], 'comment', '添加和修改时间');\r\n }\r\n },\r\n eidtOptions(i) {\r\n this.index = i;\r\n this.dictionaryId = this.tableField[i].dictionary_id || 0;\r\n this.optionsModal = true;\r\n if (this.dictionaryId) {\r\n crudDataDictionaryList(this.dictionaryId).then((res) => {\r\n this.dictionaryName = res.data.name;\r\n this.optionsList = res.data.value || [{ label: '', value: '' }];\r\n });\r\n } else {\r\n this.optionsList = [{ label: '', value: '' }];\r\n }\r\n },\r\n addOptions() {\r\n // this.$set(this.tableField[this.index], 'options', this.optionsList);\r\n let d = {\r\n name: this.dictionaryName,\r\n value: this.optionsList,\r\n };\r\n saveCrudDataDictionaryList(this.dictionaryId, d).then((res) => {\r\n this.optionsModal = false;\r\n this.getCrudDataDictionary();\r\n });\r\n },\r\n changeRadio(status) {\r\n this.tableField = [];\r\n if (status) {\r\n this.addRow();\r\n }\r\n },\r\n initTableName() {\r\n this.tableField = [];\r\n },\r\n addRow() {\r\n for (let i = 0; i < this.tableField.length; i++) {\r\n const el = this.tableField[i];\r\n if ((!el.field || !el.field_type) && !['addTimestamps', 'addSoftDelete'].includes(el.field_type)) {\r\n return this.$message.warning('请先完善上一条数据');\r\n }\r\n if (\r\n el.is_table &&\r\n !el.table_name &&\r\n !Number(el.primaryKey) &&\r\n !['addTimestamps', 'addSoftDelete'].includes(el.field_type)\r\n ) {\r\n return this.$message.warning('请输入列表名');\r\n }\r\n }\r\n let i = this.tableField.length;\r\n let spliceIndex = 0;\r\n this.tableField.map((e) => {\r\n if (e.field === 'create_time' || e.field === 'update_time') {\r\n spliceIndex++;\r\n }\r\n if (e.field === 'delete_time') {\r\n spliceIndex++;\r\n }\r\n });\r\n i = this.tableField.length - spliceIndex;\r\n this.tableField.splice(i, 0, {\r\n field: '',\r\n field_type: '',\r\n default: '',\r\n default_type: '-1',\r\n comment: '',\r\n required: false,\r\n is_table: true,\r\n table_name: '',\r\n limit: '',\r\n primaryKey: 0,\r\n from_type: '',\r\n search: '',\r\n dictionary_id: 0,\r\n hasOne: [],\r\n index: false,\r\n });\r\n // this.tableField.push();\r\n },\r\n addCreate(status) {\r\n if (status) {\r\n let haveCre = this.tableField.findIndex((e) => e.field === 'create_time');\r\n let haveUp = this.tableField.findIndex((e) => e.field === 'update_time');\r\n if (haveCre > 0 || haveUp > 0) {\r\n this.$nextTick((e) => {\r\n this.isCreate = false;\r\n });\r\n return this.$message.warning('已存在 create_time或update_time');\r\n }\r\n let data = [\r\n {\r\n field: 'create_time',\r\n field_type: 'timestamp',\r\n default: '',\r\n default_type: '-1',\r\n comment: '添加时间',\r\n required: false,\r\n is_table: false,\r\n table_name: '添加时间',\r\n limit: '',\r\n primaryKey: 0,\r\n from_type: '',\r\n search: '',\r\n dictionary_id: 0,\r\n hasOne: [],\r\n index: false,\r\n },\r\n {\r\n field: 'update_time',\r\n field_type: 'timestamp',\r\n default_type: '-1',\r\n default: '',\r\n comment: '修改时间',\r\n required: false,\r\n is_table: false,\r\n table_name: '修改时间',\r\n limit: '',\r\n primaryKey: 0,\r\n from_type: '',\r\n search: '',\r\n dictionary_id: 0,\r\n hasOne: [],\r\n index: false,\r\n },\r\n ];\r\n this.tableField = [...this.tableField, ...data];\r\n } else {\r\n let i = this.tableField.findIndex((e) => e.field === 'create_time');\r\n this.tableField.splice(i, 2);\r\n }\r\n },\r\n addDelete(status) {\r\n if (status) {\r\n let haveDel = this.tableField.findIndex((e) => e.field === 'delete_time');\r\n if (haveDel > 0) {\r\n this.isDelete = false;\r\n return this.$message.warning('已存在 delete_time');\r\n }\r\n let data = [\r\n {\r\n field: 'delete_time',\r\n field_type: 'timestamp',\r\n default: '',\r\n default_type: '-1',\r\n comment: '伪删除',\r\n required: false,\r\n is_table: false,\r\n table_name: '伪删除',\r\n limit: '',\r\n primaryKey: 0,\r\n from_type: '',\r\n search: '',\r\n dictionary_id: 0,\r\n hasOne: [],\r\n index: false,\r\n },\r\n ];\r\n this.tableField = [...this.tableField, ...data];\r\n } else {\r\n let i = this.tableField.findIndex((e) => e.field === 'delete_time');\r\n this.tableField.splice(i, 1);\r\n }\r\n },\r\n changeField(index) {\r\n if (this.tableField[index].field) {\r\n for (let i = 0; i < this.tableField.length; i++) {\r\n const e = this.tableField[i];\r\n if (['id', 'create_time', 'update_time', 'delete_time'].includes(this.tableField[index].field)) {\r\n this.$message.warning('列表中已存在该字段名称');\r\n this.tableField[index].field = '';\r\n return;\r\n }\r\n }\r\n }\r\n },\r\n changeComment(e, index) {\r\n if (!this.tableField[index].comment) this.tableField[index].comment = e;\r\n },\r\n fromTypeChange(e, index) {\r\n this.fromTypeList.map((item) => {\r\n if (item.value == e) {\r\n this.tableField[index].limit = item.limit || '';\r\n this.tableField[index].field_type = item.field_type || '';\r\n }\r\n });\r\n // if (!this.tableField[index].comment) this.tableField[index].comment = e;\r\n },\r\n getCrudMenus() {\r\n crudMenus().then((res) => {\r\n this.menusList = res.data;\r\n });\r\n crudColumnType().then((res) => {\r\n this.columnTypeList = res.data.types;\r\n this.fromTypeList = res.data.form;\r\n this.defaultType = res.data.default_type;\r\n this.searchType = res.data.search_type;\r\n });\r\n this.getCrudDataDictionary();\r\n crudAssociationTable().then((res) => {\r\n this.associationTable = res.data;\r\n });\r\n },\r\n getCrudDataDictionary() {\r\n getDataDictionaryList().then((res) => {\r\n this.dictionaryList = res.data.list;\r\n });\r\n },\r\n getCrudAssociationTableName(name) {\r\n crudAssociationTableName(name).then((res) => {\r\n console.log(res);\r\n });\r\n },\r\n del(row, index) {\r\n this.tableField.splice(index, 1);\r\n if (this.id) {\r\n this.deleteField.push(row.field);\r\n }\r\n },\r\n addOneOptions() {\r\n this.optionsList.push({\r\n label: '',\r\n value: '',\r\n });\r\n },\r\n delOneOptions(i) {\r\n this.optionsList.splice(i, 1);\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.form-width {\r\n width: 500px;\r\n}\r\n.item {\r\n display: flex;\r\n margin-bottom: 10px;\r\n .row {\r\n width: 140px;\r\n margin-right: 10px;\r\n }\r\n}\r\n.table-options {\r\n display: flex;\r\n align-items: center;\r\n .create {\r\n font-size: 16px;\r\n margin-left: 10px;\r\n cursor: pointer;\r\n }\r\n}\r\n.options-list {\r\n .item {\r\n display: flex;\r\n align-items: center;\r\n .add {\r\n font-size: 18px;\r\n cursor: pointer;\r\n margin-right: 5px;\r\n // color: #2d8cf0;\r\n }\r\n .delete {\r\n font-size: 18px;\r\n cursor: pointer;\r\n color: #fb0144;\r\n }\r\n }\r\n}\r\n::v-deep .el-input-group__prepend .el-select {\r\n width: 86px;\r\n}\r\n.drag {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n .handle {\r\n width: 9px;\r\n height: 15px;\r\n }\r\n}\r\n.code-table-sel ::v-deep .el-input__inner {\r\n border: none;\r\n border-color: transparent;\r\n background-color: transparent;\r\n}\r\n::v-deep .el-input-group__prepend div.el-select .el-input__inner {\r\n height: 28px !important;\r\n line-height: 28px !important;\r\n}\r\n::v-deep .el-input-group__prepend div.el-select .el-input--small .el-input__icon {\r\n line-height: 28px;\r\n}\r\n</style>\r\n"]}]}