| | |
| | | # 页é¢æ é¢ |
| | | VUE_APP_TITLE = RuoYi-Flowable-Plusåå°ç®¡çç³»ç» |
| | | VUE_APP_TITLE = éä¹åå°ç®¡çç³»ç» |
| | | |
| | | # å¼åç¯å¢é
ç½® |
| | | ENV = 'development' |
| | | |
| | | # è¥ä¾ç®¡çç³»ç»/å¼åç¯å¢ |
| | | # 管çç³»ç»/å¼åç¯å¢ |
| | | VUE_APP_BASE_API = '/dev-api' |
| | | |
| | | # åºç¨è®¿é®è·¯å¾ ä¾å¦ä½¿ç¨åç¼ /admin/ |
| | |
| | | # 页é¢æ é¢ |
| | | VUE_APP_TITLE = RuoYi-Flowable-Plusåå°ç®¡çç³»ç» |
| | | VUE_APP_TITLE = éä¹åå°ç®¡çç³»ç» |
| | | |
| | | # ç产ç¯å¢é
ç½® |
| | | ENV = 'production' |
| | | |
| | | # è¥ä¾ç®¡çç³»ç»/ç产ç¯å¢ |
| | | # 管çç³»ç»/ç产ç¯å¢ |
| | | VUE_APP_BASE_API = '/prod-api' |
| | | |
| | | # åºç¨è®¿é®è·¯å¾ ä¾å¦ä½¿ç¨åç¼ /admin/ |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import iframeToggle from "./IframeToggle/index" |
| | | import iframeToggle from "./IframeToggle/index"; |
| | | |
| | | export default { |
| | | name: 'AppMain', |
| | | name: "AppMain", |
| | | components: { iframeToggle }, |
| | | computed: { |
| | | cachedViews() { |
| | | return this.$store.state.tagsView.cachedViews |
| | | return this.$store.state.tagsView.cachedViews; |
| | | }, |
| | | key() { |
| | | return this.$route.path |
| | | } |
| | | } |
| | | } |
| | | return this.$route.path; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .app-main { |
| | | /* 50= navbar 50 */ |
| | | min-height: calc(100vh - 50px); |
| | | height: calc(100vh - 84px); |
| | | width: 100%; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .fixed-header + .app-main { |
| | |
| | | <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/> |
| | | |
| | | <div class="right-menu"> |
| | | <template v-if="device!=='mobile'"> |
| | | <el-tooltip content="é©°éªBPM" effect="dark" placement="bottom"> |
| | | <a href="http://ccflow.org/?frm=KonBAI" target="_blank" class="right-menu-item hover-effect">é©°éªBPM</a> |
| | | </el-tooltip> |
| | | |
| | | <search id="header-search" class="right-menu-item" /> |
| | | |
| | | <el-tooltip content="æºç å°å" effect="dark" placement="bottom"> |
| | | <ruo-yi-git id="dl-git" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip content="ææ¡£å°å" effect="dark" placement="bottom"> |
| | | <ruo-yi-doc id="dl-doc" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <screenfull id="screenfull" class="right-menu-item hover-effect" /> |
| | | |
| | | <el-tooltip content="å¸å±å¤§å°" effect="dark" placement="bottom"> |
| | | <size-select id="size-select" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | </template> |
| | | |
| | | <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click"> |
| | | <div class="avatar-wrapper"> |
| | |
| | | <router-link to="/user/profile"> |
| | | <el-dropdown-item>个人ä¸å¿</el-dropdown-item> |
| | | </router-link> |
| | | <el-dropdown-item @click.native="setting = true"> |
| | | <!-- <el-dropdown-item @click.native="setting = true"> |
| | | <span>å¸å±è®¾ç½®</span> |
| | | </el-dropdown-item> |
| | | </el-dropdown-item> --> |
| | | <el-dropdown-item divided @click.native="logout"> |
| | | <span>éåºç»å½</span> |
| | | </el-dropdown-item> |
| | |
| | | import TopNav from '@/components/TopNav' |
| | | import Hamburger from '@/components/Hamburger' |
| | | import Screenfull from '@/components/Screenfull' |
| | | import SizeSelect from '@/components/SizeSelect' |
| | | // import SizeSelect from '@/components/SizeSelect' |
| | | import Search from '@/components/HeaderSearch' |
| | | import RuoYiGit from '@/components/RuoYi/Git' |
| | | import RuoYiDoc from '@/components/RuoYi/Doc' |
| | | |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | TopNav, |
| | | Hamburger, |
| | | Screenfull, |
| | | SizeSelect, |
| | | // SizeSelect, |
| | | Search, |
| | | RuoYiGit, |
| | | RuoYiDoc |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | title: 'RuoYi-Flowable-Plus', |
| | | title: 'éä¹åå°ç®¡çç³»ç»', |
| | | logo: logoImg |
| | | } |
| | | } |
| | |
| | | permissions: ['system:dict:list'], |
| | | children: [ |
| | | { |
| | | path: 'index/:dictId(\\d+)', |
| | | path: 'index/:dictId([a-zA-Z0-9]+)', |
| | | component: () => import('@/views/system/dict/data'), |
| | | name: 'Data', |
| | | meta: { title: 'åå
¸æ°æ®', activeMenu: '/system/dict' } |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ä»åº" prop="lgort"> |
| | | <el-input |
| | | v-model="queryParams.lgort" |
| | | placeholder="请è¾å
¥ä»åº" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å称" prop="locationName"> |
| | | <el-input |
| | | v-model="queryParams.locationName" |
| | | placeholder="请è¾å
¥å称" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input |
| | | v-model="queryParams.state" |
| | | placeholder="请è¾å
¥ç¶æ" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <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" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:location:add']" |
| | | >æ°å¢</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:location:edit']" |
| | | >ä¿®æ¹</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:location:remove']" |
| | | >å é¤</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:location:export']" |
| | | >导åº</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="locationList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="åºä½ID" align="center" prop="locationId" v-if="true"/> |
| | | <el-table-column label="é¶å±åºä½ID" align="center" prop="parentLocationId" /> |
| | | <el-table-column label="ä»åº" align="center" prop="lgort" /> |
| | | <el-table-column label="åºä½åºå·" align="center" prop="locationNo" /> |
| | | <el-table-column label="å称" align="center" prop="locationName" /> |
| | | <el-table-column label="å·¥å" align="center" prop="werks" /> |
| | | <el-table-column label="ç±»å" align="center" prop="type" /> |
| | | <el-table-column label="ä½ç§¯éå¶" align="center" prop="volumeRestriction" /> |
| | | <el-table-column label="éééå¶" align="center" prop="weightLimit" /> |
| | | <el-table-column label="ç®±æ°éå¶" align="center" prop="containerNumberLimit" /> |
| | | <el-table-column label="æ°ééå¶" align="center" prop="quantitativeRestrictions" /> |
| | | <el-table-column label="æçéå¶" align="center" prop="trayLimit" /> |
| | | <el-table-column label="é¿åº¦" align="center" prop="length" /> |
| | | <el-table-column label="宽" align="center" prop="width" /> |
| | | <el-table-column label="é«" align="center" prop="height" /> |
| | | <el-table-column label="åæ X" align="center" prop="coordinateX" /> |
| | | <el-table-column label="åæ Y" align="center" prop="coordinateY" /> |
| | | <el-table-column label="åæ Z" align="center" prop="coordinateZ" /> |
| | | <el-table-column label="åç´ X" align="center" prop="pixelX" /> |
| | | <el-table-column label="åç´ Y" align="center" prop="pixelY" /> |
| | | <el-table-column label="空é´å±æ°" align="center" prop="paceLayer" /> |
| | | <el-table-column label="1-å
许" align="center" prop="allowMixedProduct" /> |
| | | <el-table-column label="1-å
许" align="center" prop="allowMixedProductLot" /> |
| | | <el-table-column label="å±çº§" align="center" prop="layer" /> |
| | | <el-table-column label="1-åå¨" align="center" prop="hasChild" /> |
| | | <el-table-column label="è·¯å¾" align="center" prop="path" /> |
| | | <el-table-column label="æè¿°" align="center" prop="description" /> |
| | | <el-table-column label="ç¶æ" align="center" prop="state" /> |
| | | <el-table-column label="æåæ´æ°äººid" align="center" prop="lastUpdatedUserId" /> |
| | | <el-table-column label="æåæ´æ°äººå§å" align="center" prop="lastUpdatedUserName" /> |
| | | <el-table-column label="æåæ´æ°æ¶é´" align="center" prop="lastUpdatedDateTime" width="180"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.lastUpdatedDateTime, '{y}-{m}-{d}') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <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="['system:location:edit']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:location:remove']" |
| | | >å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | <!-- æ·»å æä¿®æ¹åºä½å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="é¶å±åºä½ID" prop="parentLocationId"> |
| | | <el-input v-model="form.parentLocationId" placeholder="请è¾å
¥é¶å±åºä½ID" /> |
| | | </el-form-item> |
| | | <el-form-item label="ä»åº" prop="lgort"> |
| | | <el-input v-model="form.lgort" placeholder="请è¾å
¥ä»åº" /> |
| | | </el-form-item> |
| | | <el-form-item label="åºä½åºå·" prop="locationNo"> |
| | | <el-input v-model="form.locationNo" placeholder="请è¾å
¥åºä½åºå·" /> |
| | | </el-form-item> |
| | | <el-form-item label="å称" prop="locationName"> |
| | | <el-input v-model="form.locationName" placeholder="请è¾å
¥å称" /> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å" prop="werks"> |
| | | <el-input v-model="form.werks" placeholder="请è¾å
¥å·¥å" /> |
| | | </el-form-item> |
| | | <el-form-item label="ä½ç§¯éå¶" prop="volumeRestriction"> |
| | | <el-input v-model="form.volumeRestriction" placeholder="请è¾å
¥ä½ç§¯éå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="éééå¶" prop="weightLimit"> |
| | | <el-input v-model="form.weightLimit" placeholder="请è¾å
¥éééå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç®±æ°éå¶" prop="containerNumberLimit"> |
| | | <el-input v-model="form.containerNumberLimit" placeholder="请è¾å
¥ç®±æ°éå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ°ééå¶" prop="quantitativeRestrictions"> |
| | | <el-input v-model="form.quantitativeRestrictions" placeholder="请è¾å
¥æ°ééå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="æçéå¶" prop="trayLimit"> |
| | | <el-input v-model="form.trayLimit" placeholder="请è¾å
¥æçéå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="é¿åº¦" prop="length"> |
| | | <el-input v-model="form.length" placeholder="请è¾å
¥é¿åº¦" /> |
| | | </el-form-item> |
| | | <el-form-item label="宽" prop="width"> |
| | | <el-input v-model="form.width" placeholder="请è¾å
¥å®½" /> |
| | | </el-form-item> |
| | | <el-form-item label="é«" prop="height"> |
| | | <el-input v-model="form.height" placeholder="请è¾å
¥é«" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ X" prop="coordinateX"> |
| | | <el-input v-model="form.coordinateX" placeholder="请è¾å
¥åæ X" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ Y" prop="coordinateY"> |
| | | <el-input v-model="form.coordinateY" placeholder="请è¾å
¥åæ Y" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ Z" prop="coordinateZ"> |
| | | <el-input v-model="form.coordinateZ" placeholder="请è¾å
¥åæ Z" /> |
| | | </el-form-item> |
| | | <el-form-item label="åç´ X" prop="pixelX"> |
| | | <el-input v-model="form.pixelX" placeholder="请è¾å
¥åç´ X" /> |
| | | </el-form-item> |
| | | <el-form-item label="åç´ Y" prop="pixelY"> |
| | | <el-input v-model="form.pixelY" placeholder="请è¾å
¥åç´ Y" /> |
| | | </el-form-item> |
| | | <el-form-item label="空é´å±æ°" prop="paceLayer"> |
| | | <el-input v-model="form.paceLayer" placeholder="请è¾å
¥ç©ºé´å±æ°" /> |
| | | </el-form-item> |
| | | <el-form-item label="1-å
许" prop="allowMixedProduct"> |
| | | <el-input v-model="form.allowMixedProduct" placeholder="请è¾å
¥1-å
许" /> |
| | | </el-form-item> |
| | | <el-form-item label="1-å
许" prop="allowMixedProductLot"> |
| | | <el-input v-model="form.allowMixedProductLot" placeholder="请è¾å
¥1-å
许" /> |
| | | </el-form-item> |
| | | <el-form-item label="å±çº§" prop="layer"> |
| | | <el-input v-model="form.layer" placeholder="请è¾å
¥å±çº§" /> |
| | | </el-form-item> |
| | | <el-form-item label="1-åå¨" prop="hasChild"> |
| | | <el-input v-model="form.hasChild" placeholder="请è¾å
¥1-åå¨" /> |
| | | </el-form-item> |
| | | <el-form-item label="è·¯å¾" prop="path"> |
| | | <el-input v-model="form.path" placeholder="请è¾å
¥è·¯å¾" /> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿°" prop="description"> |
| | | <el-input v-model="form.description" placeholder="请è¾å
¥æè¿°" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input v-model="form.state" placeholder="请è¾å
¥ç¶æ" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°äººid" prop="lastUpdatedUserId"> |
| | | <el-input v-model="form.lastUpdatedUserId" placeholder="请è¾å
¥æåæ´æ°äººid" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°äººå§å" prop="lastUpdatedUserName"> |
| | | <el-input v-model="form.lastUpdatedUserName" placeholder="请è¾å
¥æåæ´æ°äººå§å" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°æ¶é´" prop="lastUpdatedDateTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.lastUpdatedDateTime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请éæ©æåæ´æ°æ¶é´"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | <div class="box"> |
| | | <el-card class="box-card1"> |
| | | <div v-for="o in 4" :key="o" class="text item"> |
| | | {{'å表å
容 ' + o }} |
| | | </div> |
| | | </el-dialog> |
| | | </el-card> |
| | | <el-card class="box-card2"> |
| | | <div v-for="o in 4" :key="o" class="text item"> |
| | | {{'å表å
容 ' + o }} |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listLocation, getLocation, delLocation, addLocation, updateLocation } from "@/api/basicData/location"; |
| | | |
| | | export default { |
| | | name: "Location", |
| | | data() { |
| | | return { |
| | | // æé®loading |
| | | buttonLoading: false, |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // éä¸æ°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // åºä½è¡¨æ ¼æ°æ® |
| | | locationList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | lgort: undefined, |
| | | locationName: undefined, |
| | | type: undefined, |
| | | state: undefined, |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | | // 表åæ ¡éª |
| | | rules: { |
| | | locationId: [ |
| | | { required: true, message: "åºä½IDä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | parentLocationId: [ |
| | | { required: true, message: "é¶å±åºä½IDä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lgort: [ |
| | | { required: true, message: "ä»åºä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | locationNo: [ |
| | | { required: true, message: "åºä½åºå·ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | locationName: [ |
| | | { required: true, message: "å称ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | werks: [ |
| | | { required: true, message: "å·¥åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | type: [ |
| | | { required: true, message: "ç±»åä¸è½ä¸ºç©º", trigger: "change" } |
| | | ], |
| | | volumeRestriction: [ |
| | | { required: true, message: "ä½ç§¯éå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | weightLimit: [ |
| | | { required: true, message: "éééå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | containerNumberLimit: [ |
| | | { required: true, message: "ç®±æ°éå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | quantitativeRestrictions: [ |
| | | { required: true, message: "æ°ééå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | trayLimit: [ |
| | | { required: true, message: "æçéå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | length: [ |
| | | { required: true, message: "é¿åº¦ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | width: [ |
| | | { required: true, message: "宽ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | height: [ |
| | | { required: true, message: "é«ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | coordinateX: [ |
| | | { required: true, message: "åæ Xä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | coordinateY: [ |
| | | { required: true, message: "åæ Yä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | coordinateZ: [ |
| | | { required: true, message: "åæ Zä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | pixelX: [ |
| | | { required: true, message: "åç´ Xä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | pixelY: [ |
| | | { required: true, message: "åç´ Yä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | paceLayer: [ |
| | | { required: true, message: "空é´å±æ°ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | allowMixedProduct: [ |
| | | { required: true, message: "1-å
许ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | allowMixedProductLot: [ |
| | | { required: true, message: "1-å
许ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | layer: [ |
| | | { required: true, message: "å±çº§ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | hasChild: [ |
| | | { required: true, message: "1-åå¨ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | path: [ |
| | | { required: true, message: "è·¯å¾ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | description: [ |
| | | { required: true, message: "æè¿°ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | state: [ |
| | | { required: true, message: "ç¶æä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | displayOrder: [ |
| | | { required: true, message: "æåºä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdUserId: [ |
| | | { required: true, message: "å建人idä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdUserName: [ |
| | | { required: true, message: "å建人å§åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdDateTime: [ |
| | | { required: true, message: "å建æ¥ææ¶é´ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedUserId: [ |
| | | { required: true, message: "æåæ´æ°äººidä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedUserName: [ |
| | | { required: true, message: "æåæ´æ°äººå§åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedDateTime: [ |
| | | { required: true, message: "æåæ´æ°æ¶é´ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | isDeleted: [ |
| | | { required: true, message: "æ¯å¦å é¤ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ] |
| | | |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢åºä½å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listLocation(this.queryParams).then(response => { |
| | | this.locationList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | locationId: undefined, |
| | | parentLocationId: undefined, |
| | | lgort: undefined, |
| | | locationNo: undefined, |
| | | locationName: undefined, |
| | | werks: undefined, |
| | | type: undefined, |
| | | volumeRestriction: undefined, |
| | | weightLimit: undefined, |
| | | containerNumberLimit: undefined, |
| | | quantitativeRestrictions: undefined, |
| | | trayLimit: undefined, |
| | | length: undefined, |
| | | width: undefined, |
| | | height: undefined, |
| | | coordinateX: undefined, |
| | | coordinateY: undefined, |
| | | coordinateZ: undefined, |
| | | pixelX: undefined, |
| | | pixelY: undefined, |
| | | paceLayer: undefined, |
| | | allowMixedProduct: undefined, |
| | | allowMixedProductLot: undefined, |
| | | layer: undefined, |
| | | hasChild: undefined, |
| | | path: undefined, |
| | | description: undefined, |
| | | state: undefined, |
| | | displayOrder: undefined, |
| | | createdUserId: undefined, |
| | | createdUserName: undefined, |
| | | createdDateTime: undefined, |
| | | lastUpdatedUserId: undefined, |
| | | lastUpdatedUserName: undefined, |
| | | lastUpdatedDateTime: undefined, |
| | | isDeleted: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡éä¸æ°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.locationId) |
| | | this.single = selection.length!==1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "æ·»å åºä½"; |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.loading = true; |
| | | this.reset(); |
| | | const locationId = row.locationId || this.ids |
| | | getLocation(locationId).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "ä¿®æ¹åºä½"; |
| | | }); |
| | | }, |
| | | /** æ交æé® */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | this.buttonLoading = true; |
| | | if (this.form.locationId != null) { |
| | | updateLocation(this.form).then(response => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } else { |
| | | addLocation(this.form).then(response => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const locationIds = row.locationId || this.ids; |
| | | this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤åºä½ç¼å·ä¸º"' + locationIds + '"çæ°æ®é¡¹ï¼').then(() => { |
| | | this.loading = true; |
| | | return delLocation(locationIds); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å é¤æå"); |
| | | }).catch(() => { |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 导åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download('system/location/export', { |
| | | ...this.queryParams |
| | | }, `location_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .box{ |
| | | width: 100%; |
| | | height: calc(100vh - 124px); |
| | | display: flex; |
| | | padding: 20px; |
| | | } |
| | | .box-card1{ |
| | | width: 20%; |
| | | height: 100%; |
| | | background-color: #4b0f0f; |
| | | } |
| | | .box-card2{ |
| | | width: 80%; |
| | | height: 100%; |
| | | background-color: #58c8eb; |
| | | } |
| | | </style> |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ä»åº" prop="lgort"> |
| | | <el-input |
| | | v-model="queryParams.lgort" |
| | | placeholder="请è¾å
¥ä»åº" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å称" prop="locationName"> |
| | | <el-input |
| | | v-model="queryParams.locationName" |
| | | placeholder="请è¾å
¥å称" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input |
| | | v-model="queryParams.state" |
| | | placeholder="请è¾å
¥ç¶æ" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <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" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:location:add']" |
| | | >æ°å¢</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:location:edit']" |
| | | >ä¿®æ¹</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:location:remove']" |
| | | >å é¤</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:location:export']" |
| | | >导åº</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" border :data="locationList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column |
| | | label="åºå·" |
| | | type="index" |
| | | fixed |
| | | width="50" /> |
| | | <!-- <el-table-column label="åºä½ID" align="center" prop="locationId" v-if="true"/> --> |
| | | <el-table-column label="é¶å±åºä½ID" align="center" prop="parentLocationId" /> |
| | | <el-table-column label="ä»åº" align="center" prop="lgort" /> |
| | | <el-table-column label="åºä½åºå·" align="center" prop="locationNo" /> |
| | | <el-table-column label="å称" align="center" prop="locationName" /> |
| | | <el-table-column label="å·¥å" align="center" prop="werks" /> |
| | | <el-table-column label="ç±»å" align="center" prop="type" /> |
| | | <el-table-column label="ä½ç§¯éå¶" align="center" prop="volumeRestriction" /> |
| | | <el-table-column label="éééå¶" align="center" prop="weightLimit" /> |
| | | <el-table-column label="ç®±æ°éå¶" align="center" prop="containerNumberLimit" /> |
| | | <el-table-column label="æ°ééå¶" align="center" prop="quantitativeRestrictions" /> |
| | | <el-table-column label="æçéå¶" align="center" prop="trayLimit" /> |
| | | <el-table-column label="é¿åº¦" align="center" prop="length" /> |
| | | <el-table-column label="宽" align="center" prop="width" /> |
| | | <el-table-column label="é«" align="center" prop="height" /> |
| | | <el-table-column label="åæ X" align="center" prop="coordinateX" /> |
| | | <el-table-column label="åæ Y" align="center" prop="coordinateY" /> |
| | | <el-table-column label="åæ Z" align="center" prop="coordinateZ" /> |
| | | <el-table-column label="åç´ X" align="center" prop="pixelX" /> |
| | | <el-table-column label="åç´ Y" align="center" prop="pixelY" /> |
| | | <el-table-column label="空é´å±æ°" align="center" prop="paceLayer" /> |
| | | <el-table-column label="1-å
许" align="center" prop="allowMixedProduct" /> |
| | | <el-table-column label="1-å
许" align="center" prop="allowMixedProductLot" /> |
| | | <el-table-column label="å±çº§" align="center" prop="layer" /> |
| | | <el-table-column label="1-åå¨" align="center" prop="hasChild" /> |
| | | <el-table-column label="è·¯å¾" align="center" prop="path" /> |
| | | <el-table-column label="æè¿°" align="center" prop="description" /> |
| | | <el-table-column label="ç¶æ" align="center" prop="state" /> |
| | | <el-table-column label="æåæ´æ°äººid" align="center" prop="lastUpdatedUserId" /> |
| | | <el-table-column label="æåæ´æ°äººå§å" align="center" prop="lastUpdatedUserName" /> |
| | | <el-table-column label="æåæ´æ°æ¶é´" align="center" prop="lastUpdatedDateTime" width="180"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.lastUpdatedDateTime, '{y}-{m}-{d}') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <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="['system:location:edit']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:location:remove']" |
| | | >å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | <!-- æ·»å æä¿®æ¹åºä½å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="é¶å±åºä½ID" prop="parentLocationId"> |
| | | <el-input v-model="form.parentLocationId" placeholder="请è¾å
¥é¶å±åºä½ID" /> |
| | | </el-form-item> |
| | | <el-form-item label="ä»åº" prop="lgort"> |
| | | <el-input v-model="form.lgort" placeholder="请è¾å
¥ä»åº" /> |
| | | </el-form-item> |
| | | <el-form-item label="åºä½åºå·" prop="locationNo"> |
| | | <el-input v-model="form.locationNo" placeholder="请è¾å
¥åºä½åºå·" /> |
| | | </el-form-item> |
| | | <el-form-item label="å称" prop="locationName"> |
| | | <el-input v-model="form.locationName" placeholder="请è¾å
¥å称" /> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å" prop="werks"> |
| | | <el-input v-model="form.werks" placeholder="请è¾å
¥å·¥å" /> |
| | | </el-form-item> |
| | | <el-form-item label="ä½ç§¯éå¶" prop="volumeRestriction"> |
| | | <el-input v-model.number="form.volumeRestriction" placeholder="请è¾å
¥ä½ç§¯éå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="éééå¶" prop="weightLimit"> |
| | | <el-input v-model.number="form.weightLimit" placeholder="请è¾å
¥éééå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç®±æ°éå¶" prop="containerNumberLimit"> |
| | | <el-input v-model.number="form.containerNumberLimit" placeholder="请è¾å
¥ç®±æ°éå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ°ééå¶" prop="quantitativeRestrictions"> |
| | | <el-input v-model.number="form.quantitativeRestrictions" placeholder="请è¾å
¥æ°ééå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="æçéå¶" prop="trayLimit"> |
| | | <el-input v-model="form.trayLimit" placeholder="请è¾å
¥æçéå¶" /> |
| | | </el-form-item> |
| | | <el-form-item label="é¿åº¦" prop="length"> |
| | | <el-input v-model.number="form.length" placeholder="请è¾å
¥é¿åº¦" /> |
| | | </el-form-item> |
| | | <el-form-item label="宽" prop="width"> |
| | | <el-input v-model.number="form.width" placeholder="请è¾å
¥å®½" /> |
| | | </el-form-item> |
| | | <el-form-item label="é«" prop="height"> |
| | | <el-input v-model.number="form.height" placeholder="请è¾å
¥é«" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ X" prop="coordinateX"> |
| | | <el-input v-model="form.coordinateX" placeholder="请è¾å
¥åæ X" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ Y" prop="coordinateY"> |
| | | <el-input v-model="form.coordinateY" placeholder="请è¾å
¥åæ Y" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ Z" prop="coordinateZ"> |
| | | <el-input v-model="form.coordinateZ" placeholder="请è¾å
¥åæ Z" /> |
| | | </el-form-item> |
| | | <el-form-item label="åç´ X" prop="pixelX"> |
| | | <el-input v-model="form.pixelX" placeholder="请è¾å
¥åç´ X" /> |
| | | </el-form-item> |
| | | <el-form-item label="åç´ Y" prop="pixelY"> |
| | | <el-input v-model="form.pixelY" placeholder="请è¾å
¥åç´ Y" /> |
| | | </el-form-item> |
| | | <el-form-item label="空é´å±æ°" prop="paceLayer"> |
| | | <el-input v-model="form.paceLayer" placeholder="请è¾å
¥ç©ºé´å±æ°" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å
许" prop="allowMixedProduct"> |
| | | <el-input v-model="form.allowMixedProduct" placeholder="请è¾å
¥1-å
许" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å
许" prop="allowMixedProductLot"> |
| | | <el-input v-model="form.allowMixedProductLot" placeholder="请è¾å
¥1-å
许" /> |
| | | </el-form-item> |
| | | <el-form-item label="å±çº§" prop="layer"> |
| | | <el-input v-model="form.layer" placeholder="请è¾å
¥å±çº§" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦åå¨" prop="hasChild"> |
| | | <el-input v-model="form.hasChild" placeholder="请è¾å
¥1-åå¨" /> |
| | | </el-form-item> |
| | | <el-form-item label="è·¯å¾" prop="path"> |
| | | <el-input v-model="form.path" placeholder="请è¾å
¥è·¯å¾" /> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿°" prop="description"> |
| | | <el-input v-model="form.description" placeholder="请è¾å
¥æè¿°" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input v-model="form.state" placeholder="请è¾å
¥ç¶æ" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="æåæ´æ°äººid" prop="lastUpdatedUserId"> |
| | | <el-input v-model="form.lastUpdatedUserId" placeholder="请è¾å
¥æåæ´æ°äººid" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°äººå§å" prop="lastUpdatedUserName"> |
| | | <el-input v-model="form.lastUpdatedUserName" placeholder="请è¾å
¥æåæ´æ°äººå§å" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°æ¶é´" prop="lastUpdatedDateTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.lastUpdatedDateTime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请éæ©æåæ´æ°æ¶é´"> |
| | | </el-date-picker> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listLocation, getLocation, delLocation, addLocation, updateLocation } from "@/api/basicData/location"; |
| | | |
| | | export default { |
| | | name: "Location", |
| | | data() { |
| | | return { |
| | | // æé®loading |
| | | buttonLoading: false, |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // éä¸æ°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // åºä½è¡¨æ ¼æ°æ® |
| | | locationList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | lgort: undefined, |
| | | locationName: undefined, |
| | | type: undefined, |
| | | state: undefined, |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | | // 表åæ ¡éª |
| | | rules: { |
| | | locationId: [ |
| | | { required: true, message: "åºä½IDä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | parentLocationId: [ |
| | | { required: true, message: "é¶å±åºä½IDä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lgort: [ |
| | | { required: true, message: "ä»åºä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | locationNo: [ |
| | | { required: true, message: "åºä½åºå·ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | locationName: [ |
| | | { required: true, message: "å称ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | werks: [ |
| | | { required: true, message: "å·¥åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | type: [ |
| | | { required: true, message: "ç±»åä¸è½ä¸ºç©º", trigger: "change" } |
| | | ], |
| | | volumeRestriction: [ |
| | | { required: true, message: "ä½ç§¯éå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | weightLimit: [ |
| | | { required: true, message: "éééå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | containerNumberLimit: [ |
| | | { required: true, message: "ç®±æ°éå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | quantitativeRestrictions: [ |
| | | { required: true, message: "æ°ééå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | trayLimit: [ |
| | | { required: true, message: "æçéå¶ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | length: [ |
| | | { required: true, message: "é¿åº¦ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | width: [ |
| | | { required: true, message: "宽ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | height: [ |
| | | { required: true, message: "é«ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | coordinateX: [ |
| | | { required: true, message: "åæ Xä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | coordinateY: [ |
| | | { required: true, message: "åæ Yä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | coordinateZ: [ |
| | | { required: true, message: "åæ Zä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | pixelX: [ |
| | | { required: true, message: "åç´ Xä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | pixelY: [ |
| | | { required: true, message: "åç´ Yä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | paceLayer: [ |
| | | { required: true, message: "空é´å±æ°ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | allowMixedProduct: [ |
| | | { required: true, message: "1-å
许ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | allowMixedProductLot: [ |
| | | { required: true, message: "1-å
许ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | layer: [ |
| | | { required: true, message: "å±çº§ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | hasChild: [ |
| | | { required: true, message: "1-åå¨ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | path: [ |
| | | { required: true, message: "è·¯å¾ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | description: [ |
| | | { required: true, message: "æè¿°ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | state: [ |
| | | { required: true, message: "ç¶æä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | displayOrder: [ |
| | | { required: true, message: "æåºä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdUserId: [ |
| | | { required: true, message: "å建人idä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdUserName: [ |
| | | { required: true, message: "å建人å§åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdDateTime: [ |
| | | { required: true, message: "å建æ¥ææ¶é´ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedUserId: [ |
| | | { required: true, message: "æåæ´æ°äººidä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedUserName: [ |
| | | { required: true, message: "æåæ´æ°äººå§åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedDateTime: [ |
| | | { required: true, message: "æåæ´æ°æ¶é´ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | isDeleted: [ |
| | | { required: true, message: "æ¯å¦å é¤ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ] |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢åºä½å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listLocation(this.queryParams).then(response => { |
| | | this.locationList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | locationId: undefined, |
| | | parentLocationId: undefined, |
| | | lgort: undefined, |
| | | locationNo: undefined, |
| | | locationName: undefined, |
| | | werks: undefined, |
| | | type: undefined, |
| | | volumeRestriction: undefined, |
| | | weightLimit: undefined, |
| | | containerNumberLimit: undefined, |
| | | quantitativeRestrictions: undefined, |
| | | trayLimit: undefined, |
| | | length: undefined, |
| | | width: undefined, |
| | | height: undefined, |
| | | coordinateX: undefined, |
| | | coordinateY: undefined, |
| | | coordinateZ: undefined, |
| | | pixelX: undefined, |
| | | pixelY: undefined, |
| | | paceLayer: undefined, |
| | | allowMixedProduct: undefined, |
| | | allowMixedProductLot: undefined, |
| | | layer: undefined, |
| | | hasChild: undefined, |
| | | path: undefined, |
| | | description: undefined, |
| | | state: undefined, |
| | | displayOrder: undefined, |
| | | createdUserId: undefined, |
| | | createdUserName: undefined, |
| | | createdDateTime: undefined, |
| | | lastUpdatedUserId: undefined, |
| | | lastUpdatedUserName: undefined, |
| | | lastUpdatedDateTime: undefined, |
| | | isDeleted: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡éä¸æ°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.locationId) |
| | | this.single = selection.length!==1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "æ·»å åºä½"; |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.loading = true; |
| | | this.reset(); |
| | | const locationId = row.locationId || this.ids |
| | | getLocation(locationId).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "ä¿®æ¹åºä½"; |
| | | }); |
| | | }, |
| | | /** æ交æé® */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | this.buttonLoading = true; |
| | | if (this.form.locationId != null) { |
| | | updateLocation(this.form).then(response => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } else { |
| | | addLocation(this.form).then(response => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const locationIds = row.locationId || this.ids; |
| | | this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤åºä½ç¼å·ä¸º"' + locationIds + '"çæ°æ®é¡¹ï¼').then(() => { |
| | | this.loading = true; |
| | | return delLocation(locationIds); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å é¤æå"); |
| | | }).catch(() => { |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 导åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download('system/location/export', { |
| | | ...this.queryParams |
| | | }, `location_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="locationGroupList" @selection-change="handleSelectionChange"> |
| | | <el-table v-loading="loading" border :data="locationGroupList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="åºä½ç»ID" align="center" prop="locationGroupId" v-if="true"/> |
| | | <el-table-column |
| | | label="åºå·" |
| | | type="index" |
| | | fixed |
| | | width="50" /> |
| | | <!-- <el-table-column label="åºä½ç»ID" align="center" prop="locationGroupId" v-if="true"/> --> |
| | | <el-table-column label="åºä½ç»ç¼å·" align="center" prop="locationGroupNo" /> |
| | | <el-table-column label="å·¥å" align="center" prop="werks" /> |
| | | <el-table-column label="åºä½ç»å称" align="center" prop="locationGroupName" /> |
| | |
| | | /> |
| | | |
| | | <!-- æ·»å æä¿®æ¹åºä½ç»å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="åºä½ç»ç¼å·" prop="locationGroupNo"> |
| | | <el-input v-model="form.locationGroupNo" placeholder="请è¾å
¥åºä½ç»ç¼å·" /> |
| | |
| | | <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input v-model="form.state" placeholder="请è¾å
¥ç¶æ" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°äººid" prop="lastUpdatedUserId"> |
| | | <!-- <el-form-item label="æåæ´æ°äººid" prop="lastUpdatedUserId"> |
| | | <el-input v-model="form.lastUpdatedUserId" placeholder="请è¾å
¥æåæ´æ°äººid" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°äººå§å" prop="lastUpdatedUserName"> |
| | |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请éæ©æåæ´æ°æ¶é´"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">ç¡® å®</el-button> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å称" prop="warehouseName"> |
| | | <el-input |
| | | v-model="queryParams.warehouseName" |
| | | placeholder="请è¾å
¥å称" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å" prop="werks"> |
| | | <el-input |
| | | v-model="queryParams.werks" |
| | | v-model.trim="queryParams.werks" |
| | | placeholder="请è¾å
¥å·¥å" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å称" prop="warehouseName"> |
| | | <el-input |
| | | v-model.trim="queryParams.warehouseName" |
| | | placeholder="请è¾å
¥å称" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="ç¼å·" prop="lgort"> |
| | | <el-input |
| | | v-model.trim="queryParams.lgort" |
| | | placeholder="请è¾å
¥ç¼å·" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input |
| | | v-model="queryParams.state" |
| | | v-model.trim="queryParams.state" |
| | | placeholder="请è¾å
¥ç¶æ" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="warehouseList" @selection-change="handleSelectionChange"> |
| | | <el-table v-loading="loading" border :data="warehouseList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="ä»åºID" align="center" prop="warehouseId" v-if="true"/> |
| | | <el-table-column |
| | | label="åºå·" |
| | | type="index" |
| | | fixed |
| | | width="50" /> |
| | | <!-- <el-table-column label="ä»åºID" align="center" prop="warehouseId" v-if="true"/> --> |
| | | <el-table-column label="ä»åºç¼å·" align="center" prop="lgort" /> |
| | | <el-table-column label="å称" align="center" prop="warehouseName" /> |
| | | <el-table-column label="å·¥å" align="center" prop="werks" /> |
| | | <el-table-column label="ç±»å«" align="center" prop="type" /> |
| | | <el-table-column label="0,ä¸å¯ç¨ |
| | | 1,å¯ç¨" align="center" prop="isUseLocation" /> |
| | | <el-table-column label="管çåID" align="center" prop="userId" /> |
| | | <el-table-column label="æ¯å¦å¯ç¨" align="center" prop="isUseLocation" > |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.isenable" :value="scope.row.isUseLocation"/> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="管çåID" align="center" prop="userId" /> --> |
| | | <el-table-column label="管çåå称" align="center" prop="userName" /> |
| | | <el-table-column label="管çåçµè¯" align="center" prop="userPhone" /> |
| | | <el-table-column label="åæ X" align="center" prop="coordinateX" /> |
| | | <el-table-column label="åæ Y" align="center" prop="coordinateY" /> |
| | | <el-table-column label="æè¿°" align="center" prop="description" /> |
| | | <el-table-column label="ç¶æ" align="center" prop="state" /> |
| | | <!-- <el-table-column label="ç¶æ" align="center" prop="state" /> --> |
| | | <el-table-column label="æåæ´æ°äººid" align="center" prop="lastUpdatedUserId" /> |
| | | <el-table-column label="æåæ´æ°äººå§å" align="center" prop="lastUpdatedUserName" /> |
| | | <el-table-column label="æåæ´æ°æ¶é´" align="center" prop="lastUpdatedDateTime" width="180"> |
| | |
| | | /> |
| | | |
| | | <!-- æ·»å æä¿®æ¹ä»åºå¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="ä»åºç¼å·" prop="lgort"> |
| | | <el-input v-model="form.lgort" placeholder="请è¾å
¥ä»åºç¼å·" /> |
| | | <el-input v-model.trim="form.lgort" placeholder="请è¾å
¥ä»åºç¼å·" /> |
| | | </el-form-item> |
| | | <el-form-item label="å称" prop="warehouseName"> |
| | | <el-input v-model="form.warehouseName" placeholder="请è¾å
¥å称" /> |
| | | <el-input v-model.trim="form.warehouseName" placeholder="请è¾å
¥å称" /> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å" prop="werks"> |
| | | <el-input v-model="form.werks" placeholder="请è¾å
¥å·¥å" /> |
| | | <el-input v-model.trim="form.werks" placeholder="请è¾å
¥å·¥å" /> |
| | | </el-form-item> |
| | | <el-form-item label="0,ä¸å¯ç¨ |
| | | 1,å¯ç¨" prop="isUseLocation"> |
| | | <el-input v-model="form.isUseLocation" placeholder="请è¾å
¥0,ä¸å¯ç¨ |
| | | 1,å¯ç¨" /> |
| | | <el-form-item label="ç±»å«" prop="type"> |
| | | <el-input v-model.trim="form.type" placeholder="请è¾å
¥ç±»å«" /> |
| | | </el-form-item> |
| | | <el-form-item label="管çåID" prop="userId"> |
| | | <el-input v-model="form.userId" placeholder="请è¾å
¥ç®¡çåID" /> |
| | | <el-form-item label="æ¯å¦å¯ç¨" prop="isUseLocation"> |
| | | <!-- <el-input v-model.trim="form.isUseLocation" placeholder="请è¾å
¥0,ä¸å¯ç¨ |
| | | 1,å¯ç¨" /> --> |
| | | <el-select v-model="form.isUseLocation" placeholder="æ¯å¦å¯ç¨" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.isenable" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="管çåå称" prop="userId"> |
| | | <el-input v-model.trim="form.userName" placeholder="请è¾å
¥ç®¡çåå称" /> |
| | | </el-form-item> |
| | | <el-form-item label="管çåçµè¯" prop="userPhone"> |
| | | <el-input v-model="form.userPhone" placeholder="请è¾å
¥ç®¡çåçµè¯" /> |
| | | <el-input v-model.trim="form.userPhone" placeholder="请è¾å
¥ç®¡çåçµè¯" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ X" prop="coordinateX"> |
| | | <el-input v-model="form.coordinateX" placeholder="请è¾å
¥åæ X" /> |
| | | <el-input v-model.trim="form.coordinateX" placeholder="请è¾å
¥åæ X" /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ Y" prop="coordinateY"> |
| | | <el-input v-model="form.coordinateY" placeholder="请è¾å
¥åæ Y" /> |
| | | <el-input v-model.trim="form.coordinateY" placeholder="请è¾å
¥åæ Y" /> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿°" prop="description"> |
| | | <el-input v-model="form.description" placeholder="请è¾å
¥æè¿°" /> |
| | | <el-input v-model.trim="form.description" placeholder="请è¾å
¥æè¿°" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input v-model="form.state" placeholder="请è¾å
¥ç¶æ" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°äººid" prop="lastUpdatedUserId"> |
| | | <el-input v-model="form.lastUpdatedUserId" placeholder="请è¾å
¥æåæ´æ°äººid" /> |
| | | <!-- <el-form-item label="ç¶æ" prop="state"> |
| | | <el-input v-model.trim="form.state" placeholder="请è¾å
¥ç¶æ" /> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="æåæ´æ°äººid" prop="lastUpdatedUserId"> |
| | | <el-input v-model.trim="form.lastUpdatedUserId" placeholder="请è¾å
¥æåæ´æ°äººid" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°äººå§å" prop="lastUpdatedUserName"> |
| | | <el-input v-model="form.lastUpdatedUserName" placeholder="请è¾å
¥æåæ´æ°äººå§å" /> |
| | | <el-input v-model.trim="form.lastUpdatedUserName" placeholder="请è¾å
¥æåæ´æ°äººå§å" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåæ´æ°æ¶é´" prop="lastUpdatedDateTime"> |
| | | <el-date-picker clearable |
| | |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请éæ©æåæ´æ°æ¶é´"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">ç¡® å®</el-button> |
| | |
| | | |
| | | export default { |
| | | name: "Warehouse", |
| | | dicts: ['isenable'], |
| | | data() { |
| | | return { |
| | | // æé®loading |
| | |
| | | state: [ |
| | | { required: true, message: "ç¶æä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | displayOrder: [ |
| | | { required: true, message: "æåºä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdUserId: [ |
| | | { required: true, message: "å建人idä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdUserName: [ |
| | | { required: true, message: "å建人å§åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | createdDateTime: [ |
| | | { required: true, message: "å建æ¥ææ¶é´ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedUserId: [ |
| | | { required: true, message: "æåæ´æ°äººidä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedUserName: [ |
| | | { required: true, message: "æåæ´æ°äººå§åä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | lastUpdatedDateTime: [ |
| | | { required: true, message: "æåæ´æ°æ¶é´ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | isDeleted: [ |
| | | { required: true, message: "æ¯å¦å é¤ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ] |
| | | |
| | | } |
| | | }; |
| | | }, |
| | |
| | | <template> |
| | | <div class="app-container home"> |
| | | <el-row :gutter="20"> |
| | | <el-col :sm="24" :lg="12" style="padding-left: 20px"> |
| | | <h2>RuoYi-Vue-Plusåå°ç®¡çæ¡æ¶</h2> |
| | | <p> |
| | | RuoYi-Vue-Plus æ¯åºäº RuoYi-Vue é对 åå¸å¼é群 åºæ¯å级(ä¸å
¼å®¹åæ¡æ¶) |
| | | <br/> |
| | | * å端å¼åæ¡æ¶ VueãElement UI<br/> |
| | | * å端å¼åæ¡æ¶ Spring Boot<br/> |
| | | * 容å¨æ¡æ¶ Undertow åºäº XNIO çé«æ§è½å®¹å¨<br/> |
| | | * æé认è¯æ¡æ¶ Sa-TokenãJwt æ¯æå¤ç»ç«¯è®¤è¯ç³»ç»<br/> |
| | | * å
³ç³»æ°æ®åº MySQL éé
8.X æä½ 5.7<br/> |
| | | * å
³ç³»æ°æ®åº Oracle éé
11g 12c<br/> |
| | | * å
³ç³»æ°æ®åº PostgreSQL éé
13 14<br/> |
| | | * å
³ç³»æ°æ®åº SQLServer éé
2017 2019<br/> |
| | | * ç¼åæ°æ®åº Redis éé
6.X æä½ 4.X<br/> |
| | | * æ°æ®åºæ¡æ¶ Mybatis-Plus å¿«é CRUD å¢å å¼åæç<br/> |
| | | * æ°æ®åºæ¡æ¶ p6spy æ´å¼ºå²ç SQL åæ<br/> |
| | | * å¤æ°æ®æºæ¡æ¶ dynamic-datasource æ¯æ主ä»ä¸å¤ç§ç±»æ°æ®åºå¼æ<br/> |
| | | * åºååæ¡æ¶ Jackson ç»ä¸ä½¿ç¨ jackson é«æå¯é <br/> |
| | | * Redis客æ·ç«¯ Redisson æ§è½å¼ºå²ãAPI丰å¯<br/> |
| | | * åå¸å¼éæµ Redisson å
¨å±ã请æ±IPãé群ID å¤ç§éæµ<br/> |
| | | * åå¸å¼é Lock4j 注解éãå·¥å
·é å¤ç§å¤æ ·<br/> |
| | | * åå¸å¼å¹ç Redisson æ¦æªéå¤æ交<br/> |
| | | * åå¸å¼é¾è·¯è¿½è¸ª SkyWalking æ¯æé¾è·¯è¿½è¸ªãç½æ ¼åæã度éèåãå¯è§å<br/> |
| | | * åå¸å¼ä»»å¡è°åº¦ Xxl-Job é«æ§è½ é«å¯é ææ©å±<br/> |
| | | * åå¸å¼æ件åå¨ Minio æ¬å°åå¨<br/> |
| | | * åå¸å¼äºåå¨ ä¸çãé¿éãè
¾è®¯ äºåå¨<br/> |
| | | * çæ§æ¡æ¶ SpringBoot-Admin å
¨æ¹ä½æå¡çæ§<br/> |
| | | * æ ¡éªæ¡æ¶ Validation å¢å¼ºæ¥å£å®å
¨æ§ 严谨æ§<br/> |
| | | * Excelæ¡æ¶ Alibaba EasyExcel æ§è½ä¼å¼ æ©å±æ§å¼º<br/> |
| | | * ææ¡£æ¡æ¶ SpringDocãjavadoc æ 注解é¶å
¥ä¾µåºäºjava注é<br/> |
| | | * å·¥å
·ç±»æ¡æ¶ HutoolãLombok åå°ä»£ç åä½ å¢å å®å
¨æ§<br/> |
| | | * 代ç çæå¨ éé
MPãSpringDocè§èå代ç ä¸é®çæåå端代ç <br/> |
| | | * é¨ç½²æ¹å¼ Docker 容å¨ç¼æ ä¸é®é¨ç½²ä¸å¡é群<br/> |
| | | * å½é
å SpringMessage Springæ åå½é
åæ¹æ¡<br/> |
| | | </p> |
| | | <p> |
| | | <b>å½åçæ¬:</b> <span>v{{ version }}</span> |
| | | </p> |
| | | <p> |
| | | <el-tag type="danger">¥å
è´¹å¼æº</el-tag> |
| | | </p> |
| | | <p> |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | icon="el-icon-cloudy" |
| | | plain |
| | | @click="goTarget('https://gitee.com/dromara/RuoYi-Vue-Plus')" |
| | | >访é®ç äº</el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | icon="el-icon-cloudy" |
| | | plain |
| | | @click="goTarget('https://github.com/dromara/RuoYi-Vue-Plus')" |
| | | >访é®GitHub</el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | icon="el-icon-cloudy" |
| | | plain |
| | | @click="goTarget('https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages?sort_id=4106467&doc_id=1469725')" |
| | | >æ´æ°æ¥å¿</el-button |
| | | > |
| | | </p> |
| | | </el-col> |
| | | <div class="dashboard-editor-container"> |
| | | |
| | | <el-col :sm="24" :lg="12" style="padding-left: 50px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <h2>ææ¯éå</h2> |
| | | <panel-group @handleSetLineChartData="handleSetLineChartData" /> |
| | | |
| | | <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> |
| | | <line-chart :chart-data="lineChartData" /> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="32"> |
| | | <el-col :xs="24" :sm="24" :lg="8"> |
| | | <div class="chart-wrapper"> |
| | | <raddar-chart /> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :lg="8"> |
| | | <div class="chart-wrapper"> |
| | | <pie-chart /> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :lg="8"> |
| | | <div class="chart-wrapper"> |
| | | <bar-chart /> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <h4>å端ææ¯</h4> |
| | | <ul> |
| | | <li>SpringBoot</li> |
| | | <li>Sa-Token</li> |
| | | <li>JWT</li> |
| | | <li>MyBatis</li> |
| | | <li>Druid</li> |
| | | <li>Jackson</li> |
| | | <li>...</li> |
| | | </ul> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <h4>å端ææ¯</h4> |
| | | <ul> |
| | | <li>Vue</li> |
| | | <li>Vuex</li> |
| | | <li>Element-ui</li> |
| | | <li>Axios</li> |
| | | <li>Sass</li> |
| | | <li>Quill</li> |
| | | <li>...</li> |
| | | </ul> |
| | | </el-col> |
| | | </el-row> |
| | | </el-col> |
| | | </el-row> |
| | | <el-divider /> |
| | | |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import PanelGroup from './dashboard/PanelGroup' |
| | | import LineChart from './dashboard/LineChart' |
| | | import RaddarChart from './dashboard/RaddarChart' |
| | | import PieChart from './dashboard/PieChart' |
| | | import BarChart from './dashboard/BarChart' |
| | | |
| | | const lineChartData = { |
| | | newVisitis: { |
| | | expectedData: [100, 120, 161, 134, 105, 160, 165], |
| | | actualData: [120, 82, 91, 154, 162, 140, 145] |
| | | }, |
| | | messages: { |
| | | expectedData: [200, 192, 120, 144, 160, 130, 140], |
| | | actualData: [180, 160, 151, 106, 145, 150, 130] |
| | | }, |
| | | purchases: { |
| | | expectedData: [80, 100, 121, 104, 105, 90, 100], |
| | | actualData: [120, 90, 100, 138, 142, 130, 130] |
| | | }, |
| | | shoppings: { |
| | | expectedData: [130, 140, 141, 142, 145, 150, 160], |
| | | actualData: [120, 82, 91, 154, 162, 140, 130] |
| | | } |
| | | } |
| | | |
| | | export default { |
| | | name: "Index", |
| | | name: 'Index', |
| | | components: { |
| | | PanelGroup, |
| | | LineChart, |
| | | RaddarChart, |
| | | PieChart, |
| | | BarChart |
| | | }, |
| | | data() { |
| | | return { |
| | | // çæ¬å· |
| | | version: "0.8.3", |
| | | }; |
| | | lineChartData: lineChartData.newVisitis |
| | | } |
| | | }, |
| | | methods: { |
| | | goTarget(href) { |
| | | window.open(href, "_blank"); |
| | | }, |
| | | }, |
| | | }; |
| | | handleSetLineChartData(type) { |
| | | this.lineChartData = lineChartData[type] |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home { |
| | | blockquote { |
| | | padding: 10px 20px; |
| | | margin: 0 0 20px; |
| | | font-size: 17.5px; |
| | | border-left: 5px solid #eee; |
| | | } |
| | | hr { |
| | | margin-top: 20px; |
| | | margin-bottom: 20px; |
| | | border: 0; |
| | | border-top: 1px solid #eee; |
| | | } |
| | | .col-item { |
| | | margin-bottom: 20px; |
| | | } |
| | | <style lang="scss" scoped> |
| | | .dashboard-editor-container { |
| | | padding: 32px; |
| | | background-color: rgb(240, 242, 245); |
| | | position: relative; |
| | | |
| | | ul { |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | |
| | | font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; |
| | | font-size: 13px; |
| | | color: #676a6c; |
| | | overflow-x: hidden; |
| | | |
| | | ul { |
| | | list-style-type: none; |
| | | } |
| | | |
| | | h4 { |
| | | margin-top: 0px; |
| | | } |
| | | |
| | | h2 { |
| | | margin-top: 10px; |
| | | font-size: 26px; |
| | | font-weight: 100; |
| | | } |
| | | |
| | | p { |
| | | margin-top: 10px; |
| | | |
| | | b { |
| | | font-weight: 700; |
| | | .chart-wrapper { |
| | | background: #fff; |
| | | padding: 16px 16px 0; |
| | | margin-bottom: 32px; |
| | | } |
| | | } |
| | | |
| | | .update-log { |
| | | ol { |
| | | display: block; |
| | | list-style-type: decimal; |
| | | margin-block-start: 1em; |
| | | margin-block-end: 1em; |
| | | margin-inline-start: 0; |
| | | margin-inline-end: 0; |
| | | padding-inline-start: 40px; |
| | | } |
| | | @media (max-width:1024px) { |
| | | .chart-wrapper { |
| | | padding: 8px; |
| | | } |
| | | } |
| | | </style> |
| | | |
| | |
| | | <template> |
| | | <div class="login"> |
| | | <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> |
| | | <h3 class="title">RuoYi-Flowable-Plusåå°ç®¡çç³»ç»</h3> |
| | | <h3 class="title">éä¹åå°ç®¡çç³»ç»</h3> |
| | | <el-form-item prop="username"> |
| | | <el-input |
| | | v-model="loginForm.username" |
| | |
| | | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="code" v-if="captchaEnabled"> |
| | | <!-- <el-form-item prop="code" v-if="captchaEnabled"> |
| | | <el-input |
| | | v-model="loginForm.code" |
| | | auto-complete="off" |
| | |
| | | <div class="login-code"> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img"/> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">è®°ä½å¯ç </el-checkbox> |
| | | <el-form-item style="width:100%;"> |
| | | <el-button |
| | |
| | | </el-form> |
| | | <!-- åºé¨ --> |
| | | <div class="el-login-footer"> |
| | | <span>Copyright © 2021-2023 KonBAI All Rights Reserved.</span> |
| | | <!-- <span>Copyright © 2021-2023 KonBAI All Rights Reserved.</span> --> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | <template> |
| | | <div class="register"> |
| | | <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form"> |
| | | <h3 class="title">RuoYi-Vue-Plusåå°ç®¡çç³»ç»</h3> |
| | | <h3 class="title">éä¹åå°ç®¡çç³»ç»</h3> |
| | | <el-form-item prop="username"> |
| | | <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="è´¦å·"> |
| | | <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> |
| | |
| | | |
| | | <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="åå
¸ç¼å·" align="center" prop="dictId" /> |
| | | <!-- <el-table-column label="åå
¸ç¼å·" align="center" prop="dictId" /> --> |
| | | <el-table-column label="åå
¸å称" align="center" prop="dictName" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="åå
¸ç±»å" align="center" :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | |
| | | |
| | | <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="è§è²ç¼å·" prop="roleId" width="120" /> |
| | | <!-- <el-table-column label="è§è²ç¼å·" prop="roleId" width="120" /> --> |
| | | <el-table-column label="è§è²å称" prop="roleName" :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æéå符" prop="roleKey" :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æ¾ç¤ºé¡ºåº" prop="roleSort" width="100" /> |
| | |
| | | |
| | | <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column label="ç¨æ·ç¼å·" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> |
| | | <!-- <el-table-column label="ç¨æ·ç¼å·" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> --> |
| | | <el-table-column label="ç¨æ·å称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="ç¨æ·æµç§°" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="é¨é¨" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" /> |
| | |
| | | this.$modal.msgSuccess("æåçæå°èªå®ä¹è·¯å¾ï¼" + row.genPath); |
| | | }); |
| | | } else { |
| | | this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "dl.zip"); |
| | | this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, `${row.tableName}.zip`); |
| | | } |
| | | }, |
| | | /** åæ¥æ°æ®åºæä½ */ |
| | |
| | | |
| | | const CompressionPlugin = require('compression-webpack-plugin') |
| | | |
| | | const name = process.env.VUE_APP_TITLE || 'RuoYi-Flowable-Plusåå°ç®¡çç³»ç»' // ç½é¡µæ é¢ |
| | | const name = process.env.VUE_APP_TITLE || 'éä¹åå°ç®¡çç³»ç»' // ç½é¡µæ é¢ |
| | | |
| | | const port = process.env.port || process.env.npm_config_port || 80 // ç«¯å£ |
| | | |
| | |
| | | proxy: { |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | target: `http://localhost:8080`, |
| | | target: `http://192.168.0.106:8081`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |