a10d61c4eaca059547c248212a3392e3-js.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <?php /*a:2:{s:62:"D:\phpEnv\www\SCM-API\app\admin\view\general\config\index.html";i:1750736984;s:52:"D:\phpEnv\www\SCM-API\app\admin\view\layout\vue.html";i:1750736984;}*/ ?>
  2. import form from "http://yun.cn/assets/js/components/Form.js";
  3. import {inArray} from "http://yun.cn/assets/js/util.js";
  4. export default{
  5. components:{'YunForm':form},
  6. data:{
  7. extend:{
  8. index_url: 'general/config/index',
  9. add_url: 'general/config/add',
  10. edit_url: 'general/config/edit',
  11. del_url: 'general/config/del'
  12. },
  13. addconfig:[
  14. {field:'group',title:__('分组'),searchList:Yunqi.data.groupList,edit: {form:'select',value:'basic',change:'changeGroup'},rules:'required'},
  15. {field:'addons_pack',title:__('扩展包名'),edit:{form:'input',type:'text'},visible:false},
  16. {field:'type',title:__('类型'),searchList:Yunqi.data.typeList,edit: {form:'select',change:'changeType',value:'text'},rules:'required'},
  17. {field:'title',title:__('变量标题'),edit:'text',rules:'required'},
  18. {field:'name',title:__('变量名'),edit:'text',rules:'required'},
  19. {field:'url',title:__('分页列表Url'),edit: {form:'input',type:'text'},visible:false},
  20. {field:'labelField',title:__('显示字段'),edit: {form:'input',type:'text',placeholder:'请输入显示字段labelField'},visible:false},
  21. {field:'keyField',title:__('存储字段'),edit: {form:'input',type:'text',placeholder:'请输入显示字段keyField'},visible:false},
  22. {field:'options',title:__('选项'),edit: {form:'fieldlist',label:['键名','键值']},visible:false},
  23. {field:'value',title:__('默认值'),edit:'text'},
  24. {field:'label',title:__('JSON标题'),edit: {form:'input',type:'text',placeholder:'请输入Fieldlist的标题label,用“,”隔开'},visible:false},
  25. {field:'keys',title:__('JSON Keys'),edit: {form:'input',type:'text',placeholder:'请输入Fieldlist的标题keys,用“,”隔开'},visible:false},
  26. {field:'tips',title:__('提示信息'),edit:'text'},
  27. {field:'rules',title:__('验证规则'),edit:{form:'input',type:'text',placeholder:'请输入验证规则,多个规则用“,”隔开'}},
  28. ],
  29. groupList:Yunqi.data.groupList,
  30. typeList:Yunqi.data.typeList,
  31. tableList:[],
  32. fieldList:[],
  33. tabValue:'basic',
  34. columns:''
  35. },
  36. onLoad:function (){
  37. this.getSiteList();
  38. },
  39. methods: {
  40. getSiteList:function (){
  41. Yunqi.ajax.get(this.extend.index_url,{group:this.tabValue}).then(res=>{
  42. if(this.tabValue=='addons'){
  43. let columns=[];
  44. for(let i=0;i<res.length;i++){
  45. let value={key:res[i].key,type:res[i].type,name:res[i].name};
  46. columns.push({field:'addons', edit:{form:'slot',value:value}});
  47. let row=this.formatColumns(res[i].list);
  48. columns=columns.concat(row);
  49. }
  50. this.columns=columns;
  51. }else{
  52. this.columns=this.formatColumns(res);
  53. }
  54. });
  55. },
  56. tabChange:function (tab){
  57. this.columns='';
  58. this.tabValue=tab;
  59. this.getSiteList();
  60. },
  61. delVar:function (name){
  62. Yunqi.ajax.post(this.extend.del_url,{group:this.tabValue,name:name}).then(res=>{
  63. location.reload();
  64. });
  65. },
  66. formatVar:function (field,addons){
  67. if(addons){
  68. return 'site_config('+this.tabValue+'.'+addons+'.'+field+'")';
  69. }else{
  70. return 'site_config("'+this.tabValue+'.'+field+'")';
  71. }
  72. },
  73. formatColumns:function (list){
  74. let one=[{field:'group',edit:'hidden'}];
  75. for(let i=0;i<list.length;i++){
  76. let obj={
  77. id:list[i].id,
  78. field:list[i].name,
  79. title:list[i].title,
  80. can_delete:list[i].can_delete,
  81. edit: {}
  82. };
  83. if(list[i].rules){
  84. obj.rules=list[i].rules;
  85. }
  86. if(list[i].type=='text'){
  87. obj.edit.form='input';
  88. obj.edit.type='text';
  89. obj.edit.value=list[i].value;
  90. if(list[i].extend=='readonly'){
  91. obj.edit.readonly=true;
  92. }
  93. }
  94. if(list[i].type=='textarea'){
  95. obj.edit.form='input';
  96. obj.edit.type='textarea';
  97. obj.edit.value=list[i].value;
  98. obj.edit.rows=4;
  99. }
  100. if(list[i].type=='password'){
  101. obj.edit.form='input';
  102. obj.edit.type='password';
  103. obj.edit.value=list[i].value;
  104. }
  105. if(list[i].type=='number'){
  106. obj.edit.form='input';
  107. obj.edit.type='number';
  108. obj.edit.value=list[i].value;
  109. }
  110. if(list[i].type=='date'){
  111. obj.edit.form='date-picker';
  112. obj.edit.type='date';
  113. obj.edit.value=list[i].value;
  114. }
  115. if(list[i].type=='time'){
  116. obj.edit.form='time-picker';
  117. obj.edit.value=list[i].value;
  118. }
  119. if(list[i].type=='datetime'){
  120. obj.edit.form='date-picker';
  121. obj.edit.type='datetime';
  122. obj.edit.value=list[i].value;
  123. }
  124. if(list[i].type=='daterange'){
  125. obj.edit.form='date-picker';
  126. obj.edit.type='daterange';
  127. obj.edit.value=list[i].value;
  128. }
  129. if(list[i].type=='timerange'){
  130. obj.edit.form='time-picker';
  131. obj.edit.isRange=true;
  132. obj.edit.value=list[i].value;
  133. }
  134. if(list[i].type=='select'){
  135. obj.searchList=list[i].extend;
  136. obj.edit.form='select';
  137. obj.edit.value=list[i].value.toString();
  138. }
  139. if(list[i].type=='selects'){
  140. obj.edit.form='select';
  141. obj.searchList=list[i].extend;
  142. obj.edit.multiple=true;
  143. obj.edit.value=list[i].value || [];
  144. }
  145. if(list[i].type=='selectpage'){
  146. obj.edit.form='selectpage';
  147. obj.edit.url='general/config/selectpage?id='+list[i].id;
  148. obj.edit.keyField=list[i].setting.primarykey;
  149. obj.edit.labelField=list[i].setting.field;
  150. obj.edit.value=list[i].value;
  151. }
  152. if(list[i].type=='selectpages'){
  153. obj.edit.form='selectpage';
  154. obj.edit.url='general/config/selectpage?id='+list[i].id;
  155. obj.edit.keyField=list[i].setting.primarykey;
  156. obj.edit.labelField=list[i].setting.field;
  157. obj.edit.multiple=true;
  158. obj.edit.value=list[i].value;
  159. }
  160. if(list[i].type=='radio'){
  161. obj.edit.form='radio';
  162. obj.searchList=list[i].extend;
  163. obj.edit.value=list[i].value.toString();
  164. }
  165. if(list[i].type=='checkbox'){
  166. obj.edit.form='checkbox';
  167. obj.searchList=list[i].extend;
  168. obj.edit.value=list[i].value || [];
  169. }
  170. if(list[i].type=='image'){
  171. obj.edit.form='attachment';
  172. obj.edit.limit=1;
  173. obj.edit.value=list[i].value;
  174. }
  175. if(list[i].type=='images'){
  176. obj.edit.form='attachment';
  177. obj.edit.limit=10;
  178. obj.edit.value=list[i].value;
  179. }
  180. if(list[i].type=='file'){
  181. obj.edit.form='files';
  182. obj.edit.limit=1;
  183. let mimetype=Yunqi.config.upload.mimetype.split(',');
  184. let accept=[];
  185. mimetype.forEach(res=>{
  186. accept.push('.'+res);
  187. });
  188. obj.edit.accept=accept;
  189. obj.edit.multiple=false;
  190. obj.edit.value=list[i].value;
  191. }
  192. if(list[i].type=='files'){
  193. obj.edit.form='files';
  194. let mimetype=Yunqi.config.upload.mimetype.split(',');
  195. let accept=[];
  196. mimetype.forEach(res=>{
  197. accept.push('.'+res);
  198. });
  199. obj.edit.accept=accept;
  200. obj.edit.multiple=true;
  201. obj.edit.value=list[i].value;
  202. }
  203. if(list[i].type=='json'){
  204. obj.edit.form='fieldlist';
  205. obj.edit.value=list[i].value || null;
  206. obj.edit.label=list[i].extend[0];
  207. obj.edit.keys=list[i].extend[1];
  208. }
  209. if(list[i].type=='switch'){
  210. obj.edit.form='switch';
  211. obj.edit.inactiveValue='0';
  212. obj.edit.activeValue='1'
  213. obj.edit.value=list[i].value;
  214. }
  215. if(list[i].tip){
  216. obj.edit.placeholder=list[i].tip;
  217. }
  218. one.push(obj);
  219. }
  220. return one;
  221. },
  222. changeType:function (data,row){
  223. this.$refs.yunform.hideField(['label','url','labelField','keyField','options']);
  224. if(data=='selectpage' || data=='selectpages'){
  225. this.$refs.yunform.showField(['url','labelField','keyField']);
  226. }else if(data=='json'){
  227. this.$refs.yunform.showField(['label','keys']);
  228. }else if(inArray(['select','selects','radio','checkbox'],data)){
  229. this.$refs.yunform.showField('options');
  230. }
  231. },
  232. changeGroup:function (data){
  233. if(data=='addons'){
  234. this.$refs.yunform.showField('addons_pack');
  235. }else{
  236. this.$refs.yunform.hideField('addons_pack');
  237. }
  238. },
  239. onSubmit:function (row){
  240. row.group=this.tabValue;
  241. return true;
  242. },
  243. onSuccess:function (){
  244. if(this.tabValue=='dictionary'){
  245. location.reload();
  246. }
  247. }
  248. }
  249. }