| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754 |
- <template>
- {{$lens := .table.Columns|len}}
- {{$businessName := .table.BusinessName | CaseCamelLower}}
- {{$treeParentCode := .table.TreeParentCode}}
- {{$treeCode := .table.TreeCode}}
- {{$treeName := .table.TreeName}}
- <div class="app-container">
- <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
- {{range $index, $column := .table.Columns}}
- {{if and (eq $column.IsQuery "1") (ne $column.ColumnName "created_by") (ne $column.ColumnName "updated_by") (ne $column.ColumnName "created_at") (ne $column.ColumnName "updated_at") (ne $column.ColumnName "deleted_at")}}
- {{if eq $column.HtmlType "input" "textarea"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-input
- v-model="queryParams.{{$column.HtmlField}}"
- placeholder="请输入{{$column.ColumnComment}}"
- clearable
- size="small"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- {{else if and (eq $column.HtmlType "select" "radio" "checkbox") (ne $column.DictType "") }}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-select v-model="queryParams.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable size="small">
- <el-option
- v-for="dict in {{$column.HtmlField}}Options"
- :key="dict.key"
- :label="dict.value"
- :value="dict.key"
- />
- </el-select>
- </el-form-item>
- {{else if eq $column.HtmlType "datetime"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-date-picker
- clearable size="small" style="width: 200px"
- v-model="queryParams.{{$column.HtmlField}}"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="选择{{$column.ColumnComment}}">
- </el-date-picker>
- </el-form-item>
- {{else if and (eq $column.HtmlType "select" "radio" "checkbox") (ne $column.LinkTableName "")}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-select v-model="queryParams.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable size="small">
- <el-option
- v-for="item in {{$column.HtmlField}}Options"
- :key="item.key"
- :label="item.value"
- :value="item.key"
- />
- </el-select>
- </el-form-item>
- {{else}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-select v-model="queryParams.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable size="small">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
- {{end}}
- {{end}}
- {{end}}
- <el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
- </el-form-item>
- </el-form>
- <el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
- <el-button
- type="primary"
- icon="el-icon-plus"
- size="mini"
- @click="handleAdd"
- v-hasPermi="['{{.table.ModuleName}}/{{$businessName}}/add']"
- >新增</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="success"
- icon="el-icon-edit"
- size="mini"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['{{.table.ModuleName}}/{{$businessName}}/edit']"
- >修改</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="danger"
- icon="el-icon-delete"
- size="mini"
- :disabled="multiple"
- @click="handleDelete"
- v-hasPermi="['{{.table.ModuleName}}/{{$businessName}}/delete']"
- >删除</el-button>
- </el-col>
- </el-row>
- <el-table v-loading="loading" :data="{{$businessName}}List"
- @selection-change="handleSelectionChange"
- row-key="{{$treeCode}}"
- default-expand-all
- :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
- >
- <el-table-column type="selection" width="55" align="center" />
- {{range $index, $column := .table.Columns}}
- {{if eq $column.IsPk "1"}}
- <el-table-column label="{{$column.ColumnComment}}" align="center" prop="{{$column.HtmlField}}" />
- {{else if and (eq $column.IsList "1") (eq $column.HtmlType "datetime")}}
- <el-table-column label="{{$column.ColumnComment}}" align="center" prop="{{$column.HtmlField}}" width="180">
- <template slot-scope="scope">
- <span>{{VueTag "{{"}} parseTime(scope.row.{{$column.HtmlField}}, '{y}-{m}-{d}') {{VueTag "}}"}}</span>
- </template>
- </el-table-column>
- {{else if and (eq $column.IsList "1") (eq $column.HtmlField "createdBy")}}
- <el-table-column label="{{$column.ColumnComment}}" align="center" prop="createdUser" />
- {{else if and (eq $column.IsList "1") (eq $column.HtmlField "updatedBy")}}
- <el-table-column label="{{$column.ColumnComment}}" align="center" prop="updatedUser" />
- {{else if and (eq $column.IsList "1") (eq $column.HtmlType "imagefile")}}
- <el-table-column align="center" label="缩略图" width="100">
- <template slot-scope="scope">
- <img v-if="scope.row.{{$column.HtmlField}}!=''" :src="scope.row.{{$column.HtmlField}}|urlCorrection"
- style="width: 150px; "
- >
- </template>
- </el-table-column>
- {{else if and (eq $column.IsList "1") (HasSuffix $column.ColumnName "status")}}
- <el-table-column label="{{$column.ColumnComment}}" align="center">
- <template slot-scope="scope">
- <el-switch
- v-model="scope.row.{{$column.HtmlField}}"
- :active-value="1"
- :inactive-value="0"
- @change="{{$column.HtmlField}}Change(scope.row)"
- ></el-switch>
- </template>
- </el-table-column>
- {{else if ne $column.LinkTableName ""}}
- <el-table-column label="{{$column.ColumnComment}}" align="center" prop="{{$column.HtmlField}}" :formatter="{{$column.HtmlField}}Format" width="100">
- <template slot-scope="scope">
- {{VueTag "{{" }} {{$column.HtmlField}}Format(scope.row) {{VueTag "}}" }}
- </template>
- </el-table-column>
- {{else if and (eq $column.IsList "1") (ne $column.DictType "")}}
- <el-table-column label="{{$column.ColumnComment}}" align="center" prop="{{$column.HtmlField}}" :formatter="{{$column.HtmlField}}Format" />
- {{else if and (eq $column.IsList "1") (ne $column.HtmlField "")}}
- <el-table-column label="{{$column.ColumnComment}}" align="center" prop="{{$column.HtmlField}}" />
- {{end}}{{end}}
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
- <template slot-scope="scope">
- <el-button
- size="mini"
- type="text"
- icon="el-icon-edit"
- @click="handleUpdate(scope.row)"
- v-hasPermi="['{{.table.ModuleName}}/{{$businessName}}/edit']"
- >修改</el-button>
- <el-button
- size="mini"
- type="text"
- icon="el-icon-delete"
- @click="handleDelete(scope.row)"
- v-hasPermi="['{{.table.ModuleName}}/{{$businessName}}/delete']"
- >删除</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- 添加或修改{{.table.FunctionName}}对话框 -->
- <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
- {{range $index, $column := .table.Columns}}
- {{if and (eq $column.IsInsert "1") (ne $column.IsPk "1")}}
- {{if and (ne $treeParentCode "") (eq $column.HtmlField $treeParentCode)}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$treeParentCode}}">
- <treeselect v-model="form.{{$treeParentCode}}" :options="{{$businessName}}Options" :normalizer="normalizer" placeholder="请选择{{$column.ColumnComment}}" />
- </el-form-item>
- {{else if eq $column.HtmlType "input"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-input v-model="form.{{$column.HtmlField}}" placeholder="请输入{{$column.ColumnComment}}" />
- </el-form-item>
- {{else if eq $column.HtmlType "select" }}
- {{if ne $column.LinkTableName ""}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-select v-model="form.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}">
- <el-option
- v-for="item in {{$column.HtmlField}}Options"
- :key="item.key"
- :label="item.value"
- :value="item.key"
- ></el-option>
- </el-select>
- </el-form-item>
- {{else if ne $column.DictType ""}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-select v-model="form.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}">
- <el-option
- v-for="dict in {{$column.HtmlField}}Options"
- :key="dict.key"
- :label="dict.value"
- {{if eq $column.GoType "Integer"}}
- :value="parseInt(dict.key)"
- {{else}}
- :value="dict.key"
- {{end}}
- ></el-option>
- </el-select>
- </el-form-item>
- {{else}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-select v-model="form.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
- {{end}}
- {{else if eq $column.HtmlType "radio" }}
- {{if ne $column.DictType ""}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-radio-group v-model="form.{{$column.HtmlField}}">
- <el-radio
- v-for="dict in {{$column.HtmlField}}Options"
- :key="dict.key"
- :label="dict.key"
- >{{ VueTag "{{" }}dict.value {{VueTag "}}"}}</el-radio>
- </el-radio-group>
- </el-form-item>
- {{else}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-radio-group v-model="form.{{$column.HtmlField}}">
- <el-radio label="1">请选择字典生成</el-radio>
- </el-radio-group>
- </el-form-item>
- {{end}}
- {{else if eq $column.HtmlType "datetime"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-date-picker clearable size="small" style="width: 200px"
- v-model="form.{{$column.HtmlField}}"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="选择{{$column.ColumnComment}}">
- </el-date-picker>
- </el-form-item>
- {{else if eq $column.HtmlType "textarea"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-input v-model="form.{{$column.HtmlField}}" type="textarea" placeholder="请输入{{$column.ColumnComment}}" />
- </el-form-item>
- {{else if eq $column.HtmlType "checkbox" }}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-checkbox-group v-model="form.{{$column.HtmlField}}">
- <el-checkbox
- v-for="dict in {{$column.HtmlField}}Options"
- :key="dict.key"
- :label="dict.key"
- >{{ VueTag "{{" }}dict.value {{VueTag "}}"}}</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- {{else if eq $column.HtmlType "richtext"}}
- <el-form-item label="{{$column.ColumnComment}}">
- <Editor ref="cke" v-model="form.{{$column.HtmlField}}" @setEditContent="set{{$column.GoField}}EditContent"/>
- </el-form-item>
- {{else if eq $column.HtmlType "imagefile"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
- <el-upload
- v-loading="upLoading{{$column.GoField}}"
- :action="apiUrl+'/system/upload/upImg'"
- :before-upload="beforeAvatarUpload{{$column.GoField}}"
- :data="setUpData()"
- :on-success="handleAvatarSuccess{{$column.GoField}}"
- :show-file-list="false"
- class="avatar-uploader"
- name="file"
- >
- <img v-if="imageUrl{{$column.GoField}}" :src="imageUrl{{$column.GoField}}" class="avatar">
- <i v-else class="el-icon-plus avatar-uploader-icon"></i>
- </el-upload>
- </el-form-item>
- {{else if eq $column.HtmlType "images"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}" >
- <up-imgs :action="apiUrl+'/system/upload/upImg'" v-model="form.{{$column.HtmlField}}" @setUpImgList="setUpImgList{{$column.GoField}}"></up-imgs>
- </el-form-item>
- {{else if eq $column.HtmlType "file"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}" >
- <up-file :action="apiUrl+'/system/upload/upFile'" v-model="form.{{$column.HtmlField}}" @set-up-file-list="setUpFileList{{$column.GoField}}" :limit="1"></up-file>
- </el-form-item>
- {{else if eq $column.HtmlType "files"}}
- <el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}" >
- <up-file :action="apiUrl+'/system/upload/upFile'" v-model="form.{{$column.HtmlField}}" @set-up-file-list="setUpFileList{{$column.GoField}}" :limit="10"></up-file>
- </el-form-item>
- {{end}}
- {{end}}
- {{end}}
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitForm">确 定</el-button>
- <el-button @click="cancel">取 消</el-button>
- </div>
- </el-dialog>
- </div>
- </template>
- <script>
- {{$tokenImp := false}}
- {{$imgsImp := false}}
- {{$editImp := false }}
- {{$fileImp := false}}
- {{$getUserList:=false}}
- {{range $index,$column:=.table.Columns}}
- {{if eq $column.HtmlType "richtext"}}
- {{$editImp = true}}
- {{else if eq $column.HtmlType "imagefile"}}
- {{$tokenImp = true}}
- {{else if eq $column.HtmlType "images"}}
- {{$imgsImp = true}}
- {{else if eq $column.HtmlType "file" "files"}}
- {{$fileImp = true}}
- {{end}}
- {{if eq $column.HtmlField "createdBy" "updatedBy"}}
- {{$getUserList = true}}
- {{end}}
- {{end}}
- {{$plugin:=""}}
- {{if ContainsI $.table.PackageName "plugins"}}
- {{$plugin = "plugins/"}}
- {{end}}
- import {
- list{{.table.ClassName}},
- get{{.table.ClassName}},
- del{{.table.ClassName}},
- add{{.table.ClassName}},
- update{{.table.ClassName}},
- {{range $index,$column:= .table.Columns}}
- {{if and (HasSuffix $column.ColumnName "status") (eq $column.IsList "1") }}
- change{{$.table.ClassName}}{{$column.GoField}},
- {{end}}
- {{if ne $column.LinkTableName ""}}
- list{{$column.LinkTableClass}},
- {{end}}
- {{end}}
- {{if $getUserList}}
- getUserList,
- {{end}}
- } from "@/api/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}";
- import Treeselect from "@riophae/vue-treeselect";
- import "@riophae/vue-treeselect/dist/vue-treeselect.css";
- {{if $editImp}}
- import Editor from "@/components/CKeditor";
- {{end}}
- {{if $tokenImp}}
- import { getToken } from '@/utils/auth'
- {{end}}
- {{if $imgsImp}}
- import upImgs from "@/components/upImgs"
- {{end}}
- {{if $fileImp}}
- import upFile from "@/components/upfile"
- {{end}}
- export default {
- name: "{{.table.ClassName}}",
- components: {
- Treeselect,
- {{if $editImp}}
- Editor,
- {{end}}
- {{if $imgsImp}}
- upImgs,
- {{end}}
- {{if $fileImp}}
- upFile,
- {{end}}
- },
- data() {
- return {
- // 遮罩层
- loading: true,
- // 选中数组
- ids: [],
- // 非单个禁用
- single: true,
- // 非多个禁用
- multiple: true,
- // 总条数
- total: 0,
- // {{.table.FunctionName}}表格数据
- {{$businessName}}List: [],
- // {{.table.FunctionName}}树选项
- {{$businessName}}Options: [],
- // 弹出层标题
- title: "",
- // 是否显示弹出层
- open: false,
- {{range $index, $column := .table.Columns}}
- {{if ne $column.DictType ""}}
- // {{$column.HtmlField}}Options字典数据
- {{$column.HtmlField}}Options: [],
- {{else if ne $column.LinkTableName ""}}
- // {{$column.HtmlField}}Options关联表数据
- {{$column.HtmlField}}Options: [],
- {{else if eq $column.HtmlType "imagefile"}}
- //图片上传地址
- imageUrl{{$column.GoField}}: '',
- //上传加载
- upLoading{{$column.GoField}}: false,
- {{end}}
- {{end}}
- // 查询参数
- queryParams: {
- pageNum: 1,
- pageSize: 10,{{range $index, $column := .table.Columns}}{{if eq $column.IsQuery "1"}}
- {{$column.HtmlField}}: undefined{{if ne $lens $index}},{{end}}{{end}}{{end}}
- },
- // 表单参数
- form: {},
- // 表单校验
- rules: { {{range $index, $column := .table.Columns}}{{if eq $column.IsRequired "1"}}
- {{$column.HtmlField}} : [
- { required: true, message: "{{$column.ColumnComment}}不能为空", trigger: "blur" }
- ]{{if ne $lens $index}},{{end}}{{end}}{{end}}
- }
- };
- },
- created() {
- {{range $index, $column := .table.Columns}}
- {{if ne $column.DictType ""}}
- this.getDicts("{{$column.DictType}}").then(response => {
- this.{{$column.HtmlField}}Options = response.data.values||[];
- });
- {{else if ne $column.LinkTableName ""}}
- this.get{{$column.LinkTableClass}}Items()
- {{end}}
- {{end}}
- this.getList();
- },
- methods: {
- {{$setUpData:=true}}
- {{range $index, $column := .table.Columns}}
- {{if ne $column.LinkTableName ""}}
- //关联{{$column.LinkTableName}}表选项
- get{{$column.LinkTableClass}}Items() {
- this.getItems(list{{$column.LinkTableClass}}, {pageSize:10000}).then(res => {
- this.{{$column.HtmlField}}Options = this.setItems(res, '{{$column.LinkLabelId}}', '{{$column.LinkLabelName}}')
- })
- },
- {{else if eq $column.HtmlType "richtext"}}
- //富文本编辑器{{$column.ColumnComment}}
- set{{$column.GoField}}EditContent(data) {
- this.form.{{$column.HtmlField}} = data
- },
- {{else if eq $column.HtmlType "imagefile"}}
- //单图上传{{$column.ColumnComment}}
- handleAvatarSuccess{{$column.GoField}}(res, file) {
- if (res.code === 0) {
- this.imageUrl{{$column.GoField}} = URL.createObjectURL(file.raw)
- this.form.{{$column.HtmlField}} = res.data.fileInfo.fileUrl
- } else {
- this.msgError(res.msg)
- }
- this.upLoading{{$column.GoField}} = false
- },
- beforeAvatarUpload{{$column.GoField}}(file) {
- this.upLoading{{$column.GoField}} = true
- return true
- },
- {{if $setUpData}}
- setUpData() {
- return { token: getToken() }
- },
- {{$setUpData = false}}
- {{end}}
- {{else if eq $column.HtmlType "images"}}
- setUpImgList{{$column.GoField}}(data){
- this.form.{{$column.HtmlField}} = data
- },
- {{else if eq $column.HtmlType "file" "files"}}
- setUpFileList{{$column.GoField}}(data){
- this.form.{{$column.HtmlField}} = data
- },
- {{else if and (HasSuffix $column.ColumnName "status") (eq $column.IsList "1")}}
- // {{$column.ColumnComment}}修改
- {{$column.HtmlField}}Change(row) {
- let text = row.{{$column.HtmlField}} === 1 ? "启用" : "停用";
- this.$confirm('确认要"' + text + '":吗?', "警告", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(function() {
- return change{{$.table.ClassName}}{{$column.GoField}}(row.{{$.table.PkColumn.HtmlField}}, row.{{$column.HtmlField}});
- }).then(() => {
- this.msgSuccess(text + "成功");
- }).catch(function() {
- row.{{$column.HtmlField}} =row.{{$column.HtmlField}} === 0 ?1 : 0;
- });
- },
- {{end}}
- {{end}}
- /** 查询{{.table.FunctionName}}列表 */
- getList() {
- this.loading = true;
- list{{.table.ClassName}}(this.queryParams).then(response => {
- let list = this.handleTree(response.data.list||[], "{{$treeCode}}", "{{$treeParentCode}}");
- {{$hasCreatedBy := false}}
- {{$hasUpdatedBy := false}}
- {{range $index,$column := .table.Columns}}
- {{if and (eq $column.IsList "1") (eq $column.HtmlField "createdBy")}}
- {{$hasCreatedBy = true}}
- {{end}}
- {{if and (eq $column.IsList "1") (eq $column.HtmlField "updatedBy")}}
- {{$hasUpdatedBy = true}}
- {{end}}
- {{end}}
- {{if or $hasCreatedBy $hasUpdatedBy}}
- let listUid = [];
- {{end}}
- {{if and $hasCreatedBy $hasUpdatedBy}}
- list.map(item=>{
- listUid.push(item.createdBy,item.updatedBy)
- });
- {{else if $hasCreatedBy}}
- listUid = list.map(item=>{
- return item.createdBy
- });
- {{else if $hasUpdatedBy}}
- listUid = list.map(item=>{
- return item.updatedBy
- });
- {{end}}
- {{if or $hasCreatedBy $hasUpdatedBy}}
- getUserList(listUid).then(response =>{
- let users = response.data||[]
- list.map(item=>{
- users.forEach(user=>{
- {{if $hasCreatedBy}}
- if(item.createdBy==user.id){
- item.createdUser = user.userNickname
- }
- {{end}}
- {{if $hasUpdatedBy}}
- if(item.updatedBy==user.id){
- item.updatedUser = user.userNickname
- }
- {{end}}
- })
- })
- this.{{$businessName}}List = list;
- })
- {{else}}
- this.{{$businessName}}List = list;
- {{end}}
- this.loading = false;
- });
- },
- /** 转换{{.table.FunctionName}}数据结构 */
- normalizer(node) {
- if (node.children && !node.children.length) {
- delete node.children;
- }
- return {
- id: node.{{$treeCode}},
- label: node.{{$treeName}},
- children: node.children
- };
- },
- /** 查询{{.table.FunctionName}}下拉树结构 */
- getTreeselect() {
- list{{.table.ClassName}}(this.queryParams).then(response => {
- this.{{$businessName}}Options = [];
- const data = { {{$treeCode}}: 0, {{$treeName}}: '顶级节点', children: [] };
- data.children = this.handleTree(response.data.list||[], "{{$treeCode}}", "{{$treeParentCode}}");
- this.{{$businessName}}Options.push(data);
- });
- },
- {{range $index, $column := .table.Columns}}
- {{if ne $column.DictType ""}}
- {{if eq $column.HtmlType "checkbox"}}
- // {{$column.ColumnComment}}字典翻译
- {{$column.HtmlField}}Format(row, column) {
- let {{$column.HtmlField}} = row.{{$column.HtmlField}}.split(",")
- let data = [];
- {{$column.HtmlField}}.map(item=>{
- data.push(this.selectDictLabel(this.{{$column.HtmlField}}Options, item))
- })
- return data.join(",")
- },
- {{else}}
- // {{$column.ColumnComment}}字典翻译
- {{$column.HtmlField}}Format(row, column) {
- return this.selectDictLabel(this.{{$column.HtmlField}}Options, row.{{$column.HtmlField}});
- },
- {{end}}
- {{else if ne $column.LinkTableName ""}}
- // {{$column.ColumnComment}}关联表翻译
- {{$column.HtmlField}}Format(row, column) {
- return this.selectItemsLabel(this.{{$column.HtmlField}}Options, row.{{$column.HtmlField}});
- },
- {{end}}
- {{end}}
- // 取消按钮
- cancel() {
- this.open = false;
- this.reset();
- },
- // 表单重置
- reset() {
- this.form = {
- {{range $index, $column := .table.Columns}}
- {{if eq $column.HtmlType "radio"}}
- {{$column.HtmlField}}: "0" {{if ne $lens $index}},{{end}}
- {{else if eq $column.HtmlType "checkbox"}}
- {{$column.HtmlField}}: [] {{if ne $lens $index}},{{end}}
- {{else}}
- {{$column.HtmlField}}: undefined{{if ne $lens $index}},{{end}}{{end}}{{end}}
- };
- {{range $index, $column := .table.Columns}}
- {{if eq $column.HtmlType "imagefile"}}
- this.imageUrl{{$column.GoField}} = ''
- {{end}}
- {{end}}
- this.resetForm("form");
- },
- /** 搜索按钮操作 */
- handleQuery() {
- this.queryParams.pageNum = 1;
- this.getList();
- },
- /** 重置按钮操作 */
- resetQuery() {
- this.resetForm("queryForm");
- this.handleQuery();
- },
- // 多选框选中数据
- handleSelectionChange(selection) {
- this.ids = selection.map(item => item.{{.table.PkColumn.HtmlField}})
- this.single = selection.length!=1
- this.multiple = !selection.length
- },
- /** 新增按钮操作 */
- handleAdd() {
- this.reset();
- this.getTreeselect()
- this.open = true;
- this.title = "添加{{.table.FunctionName}}";
- },
- /** 修改按钮操作 */
- handleUpdate(row) {
- this.reset();
- this.getTreeselect()
- const {{.table.PkColumn.HtmlField}} = row.{{.table.PkColumn.HtmlField}} || this.ids
- get{{.table.ClassName}}({{.table.PkColumn.HtmlField}}).then(response => {
- let data = response.data;
- {{range $index, $column := .table.Columns}}
- {{if eq $column.HtmlType "checkbox"}}
- data.{{$column.HtmlField}} = data.{{$column.HtmlField}}.split(",")
- {{else if eq $column.HtmlType "radio" "select"}}
- data.{{$column.HtmlField}} = ''+data.{{$column.HtmlField}}
- {{else if eq $column.HtmlType "imagefile"}}
- //单图地址赋值
- this.imageUrl{{$column.GoField}} = data.{{$column.HtmlField}} ? this.getUpFileUrl(process.env.VUE_APP_BASE_API,data.{{$column.HtmlField}}) : ''
- {{else if eq $column.HtmlType "images" "file" "files"}}
- data.{{$column.HtmlField}} =data.{{$column.HtmlField}} || []
- {{end}}
- {{end}}
- this.form = data;
- this.open = true;
- this.title = "修改{{.table.FunctionName}}";
- });
- },
- /** 提交按钮 */
- submitForm: function() {
- this.$refs["form"].validate(valid => {
- if (valid) {
- if (this.form.{{.table.PkColumn.HtmlField}} != undefined) {
- update{{.table.ClassName}}(this.form).then(response => {
- if (response.code === 0) {
- this.msgSuccess("修改成功");
- this.open = false;
- this.getList();
- } else {
- this.msgError(response.msg);
- }
- });
- } else {
- add{{.table.ClassName}}(this.form).then(response => {
- if (response.code === 0) {
- this.msgSuccess("新增成功");
- this.open = false;
- this.getList();
- } else {
- this.msgError(response.msg);
- }
- });
- }
- }
- });
- },
- /** 删除按钮操作 */
- handleDelete(row) {
- const {{.table.PkColumn.HtmlField}}s = row.{{.table.PkColumn.HtmlField}} || this.ids;
- this.$confirm('是否确认删除{{.table.FunctionName}}编号为"' + {{.table.PkColumn.HtmlField}}s + '"的数据项?', "警告", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(function() {
- return del{{.table.ClassName}}({{.table.PkColumn.HtmlField}}s);
- }).then(() => {
- this.getList();
- this.msgSuccess("删除成功");
- }).catch(function() {});
- }
- }
- };
- </script>
- <style>
- {{range $index,$column:=.table.Columns}}
- {{if eq $column.HtmlType "imagefile"}}
- .avatar-uploader .el-upload {
- border: 1px dashed #d9d9d9;
- border-radius: 6px;
- cursor: pointer;
- position: relative;
- overflow: hidden;
- }
- .avatar-uploader .el-upload:hover {
- border-color: #409EFF;
- }
- .avatar-uploader-icon {
- font-size: 28px;
- color: #8c939d;
- width: 178px;
- height: 178px;
- line-height: 178px;
- text-align: center;
- }
- .avatar {
- width: 178px;
- height: 178px;
- display: block;
- }
- {{end}}
- {{end}}
- </style>
|