| | |
| | | <template> |
| | | <div class="createmyInterface"> |
| | | <main> |
| | | <div class="mainContent"> |
| | | <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface" |
| | | :rules="createmyInterfaceRules" label-position="right"> |
| | | <!-- 应用名称 --> |
| | | <el-form-item label="应用名称:" prop="applicationName"> |
| | | <el-input v-model="myInterface.applicationName" placeholder="填写应用名称"></el-input> |
| | | </el-form-item> |
| | | <!-- 应用图标 --> |
| | | <el-form-item label="应用图标:" prop="applicationIconUrl"> |
| | | <div class="iconBox"> |
| | | <div class="upload"> |
| | | <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> |
| | | </div> |
| | | <div class="iconView"> |
| | | <span>示意图</span> |
| | | <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> |
| | | </div> |
| | | <div class="tip"> |
| | | <span>只允许上传jpg,jpeg,png,svg格式的图片,建议尺寸为105px*105px</span> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <!-- 应用类型 --> |
| | | <el-form-item label="应用类型:" prop="applicationType"> |
| | | <div class="optionItem"> |
| | | <el-radio-group v-model="myInterface.applicationType"> |
| | | <el-radio :label="1">网页应用</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </el-form-item> |
| | | <!--网站url --> |
| | | <el-form-item label="网站url:" prop="websiteUrl"> |
| | | <el-input v-model="myInterface.websiteUrl"></el-input> |
| | | </el-form-item> |
| | | <!-- 应用描述 --> |
| | | <el-form-item label="应用描述:" prop="description"> |
| | | <el-input v-model="myInterface.description" placeholder="请填写描述"></el-input> |
| | | </el-form-item> |
| | | <!-- 按钮 --> |
| | | <!-- <el-form-item> |
| | | <div class="optionBtn"> |
| | | <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">提交 |
| | | </el-button> |
| | | <el-button class="btn reset">重置</el-button> |
| | | </div> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | </div> |
| | | </main> |
| | | </div> |
| | | <div class="createmyInterface"> |
| | | <main> |
| | | <div class="mainContent"> |
| | | <el-form |
| | | ref="user" |
| | | label-width="140px" |
| | | autoComplete="on" |
| | | :model="myInterface" |
| | | :rules="createUserRules" |
| | | label-position="right" |
| | | > |
| | | <el-form-item class="optionItem" label="任务编号:" prop="num"> |
| | | <el-input |
| | | v-model="myInterface.num" |
| | | placeholder="请填写任务编号" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="问题类型:" prop="type"> |
| | | <el-input |
| | | v-model="myInterface.type" |
| | | placeholder="请选择问题类型" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="大类:" prop="bigclass"> |
| | | <el-input |
| | | v-model="myInterface.bigclass" |
| | | placeholder="请选择大类" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="小类:" prop="subclass"> |
| | | <el-input |
| | | v-model="myInterface.subclass" |
| | | placeholder="请选择小类" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="街道:" prop="street"> |
| | | <el-input |
| | | v-model="myInterface.street" |
| | | placeholder="请填写街道" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="社区:" prop="community"> |
| | | <el-input |
| | | v-model="myInterface.community" |
| | | placeholder="请填写社区" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="任务描述:" prop="task"> |
| | | <el-input |
| | | v-model="myInterface.task" |
| | | placeholder="请填写任务描述" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItem" label="上报时间:" prop="reportTime"> |
| | | <el-input |
| | | v-model="myInterface.reportTime" |
| | | placeholder="请选择上报时间" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </main> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | export default { |
| | | data() { |
| | | const validateApplicationName = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写用户名称")); |
| | | } |
| | | }; |
| | | const validateApplicationIconUrl = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写登录密码")); |
| | | } else { |
| | | const rep = /^\w+$/; |
| | | if (!rep.test(value)) { |
| | | callback(new Error("密码只能是以数字、26个英文字母或者下划线组成的字符串")); |
| | | } |
| | | } |
| | | }; |
| | | const validateApplicationType = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写用户姓名")); |
| | | } else { |
| | | const rep = /^[\u4E00-\u9FA5]{2,4}$/; |
| | | if (!rep.test(value)) { |
| | | callback("请输入正确的用户姓名"); |
| | | } |
| | | } |
| | | }; |
| | | const validatePhone = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写手机号码")); |
| | | } else { |
| | | const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ |
| | | if (!rep.test(value)) { |
| | | callback("请输入正确的手机号码"); |
| | | } |
| | | } |
| | | }; |
| | | return { |
| | | myInterface: { |
| | | }, |
| | | createmyInterfaceRules: { |
| | | applicationName: [ |
| | | { required: true, trigger: "blur", validator: validateApplicationName}, |
| | | ], |
| | | applicationIconUrl: [ |
| | | { required: true, trigger: "blur", validator: validateApplicationIconUrl }, |
| | | ], |
| | | applicationType: [ |
| | | { required: true, trigger: "blur", validator: validateApplicationType }, |
| | | ], |
| | | websiteUrl: [ |
| | | { required: true, trigger: "blur" }, |
| | | ], |
| | | description: [ |
| | | { required: false, trigger: "blur" }, |
| | | ], |
| | | }, |
| | | data() { |
| | | const validateApplicationName = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写用户名称")); |
| | | } |
| | | }; |
| | | const validateApplicationIconUrl = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写登录密码")); |
| | | } else { |
| | | const rep = /^\w+$/; |
| | | if (!rep.test(value)) { |
| | | callback( |
| | | new Error("密码只能是以数字、26个英文字母或者下划线组成的字符串") |
| | | ); |
| | | } |
| | | }, |
| | | created() { |
| | | const that = this; |
| | | const {userInfo} = this; |
| | | this.myInterface = JSON.parse(JSON.stringify(userInfo)); |
| | | }, |
| | | methods: { |
| | | }, |
| | | props: ['updateFlag','userInfo'] |
| | | } |
| | | } |
| | | }; |
| | | const validateApplicationType = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback(new Error("请填写用户姓名")); |
| | | } else { |
| | | const rep = /^[\u4E00-\u9FA5]{2,4}$/; |
| | | if (!rep.test(value)) { |
| | | callback("请输入正确的用户姓名"); |
| | | } |
| | | } |
| | | }; |
| | | return { |
| | | myInterface: {}, |
| | | createmyInterfaceRules: { |
| | | applicationName: [ |
| | | { |
| | | required: true, |
| | | trigger: "blur", |
| | | validator: validateApplicationName, |
| | | }, |
| | | ], |
| | | applicationIconUrl: [ |
| | | { |
| | | required: true, |
| | | trigger: "blur", |
| | | validator: validateApplicationIconUrl, |
| | | }, |
| | | ], |
| | | applicationType: [ |
| | | { |
| | | required: true, |
| | | trigger: "blur", |
| | | validator: validateApplicationType, |
| | | }, |
| | | ], |
| | | websiteUrl: [{ required: true, trigger: "blur" }], |
| | | description: [{ required: false, trigger: "blur" }], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | const that = this; |
| | | const { userInfo } = this; |
| | | this.myInterface = JSON.parse(JSON.stringify(userInfo)); |
| | | }, |
| | | methods: {}, |
| | | props: ["updateFlag", "userInfo"], |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .createmyInterface { |
| | | border-radius: 1px; |
| | | background-color: #09152f; |
| | | border-radius: 1px; |
| | | // background-color: #09152f; |
| | | |
| | | main { |
| | | text-align: left; |
| | | padding: 0 55px; |
| | | background-color: #09152f; |
| | | main { |
| | | text-align: left; |
| | | padding: 0 55px; |
| | | // background-color: #09152f; |
| | | |
| | | .mainContent { |
| | | display: flex; |
| | | justify-content: center; |
| | | padding-top: 50px; |
| | | .mainContent { |
| | | display: flex; |
| | | justify-content: center; |
| | | padding-top: 50px; |
| | | |
| | | .iconBox { |
| | | display: flex; |
| | | |
| | | .upload { |
| | | display: flex; |
| | | align-items: flex-end; |
| | | |
| | | img { |
| | | width: 120px; |
| | | height: 120px; |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | |
| | | .iconView { |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-left: 30px; |
| | | justify-content: flex-end; |
| | | |
| | | img { |
| | | width: 70px; |
| | | height: 70px; |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | |
| | | .tip { |
| | | display: flex; |
| | | align-items: flex-end; |
| | | margin-left: 30px; |
| | | font-size: 12px; |
| | | |
| | | span { |
| | | line-height: 20px; |
| | | } |
| | | } |
| | | } |
| | | .optionBtn{ |
| | | &::v-deep .el-button{ |
| | | padding: 12px 40px; |
| | | } |
| | | .reset{ |
| | | border: 1px solid #0079fe; |
| | | color: #0079fe; |
| | | } |
| | | } |
| | | &::v-deep .el-form-item__label { |
| | | color: #4b9bb7; |
| | | } |
| | | |
| | | &::v-deep .el-input__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | |
| | | .addPerson { |
| | | display: flex; |
| | | list-style: none; |
| | | padding: 0; |
| | | |
| | | li { |
| | | background-color: #cccccc; |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | color: #fff; |
| | | text-align: center; |
| | | font-size: 30px; |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .el-form-item__content { |
| | | width: 400px; |
| | | |
| | | .el-select { |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .optionHandleSp { |
| | | display: flex; |
| | | |
| | | .areaNumber, |
| | | .moreNumber { |
| | | flex: 1; |
| | | } |
| | | |
| | | .telNumber { |
| | | flex: 2; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | footer { |
| | | border-top: 1px solid #fff; |
| | | height: 80px; |
| | | .iconBox { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | padding-right: 20px; |
| | | |
| | | .upload { |
| | | display: flex; |
| | | align-items: flex-end; |
| | | |
| | | img { |
| | | width: 120px; |
| | | height: 120px; |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | |
| | | .iconView { |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-left: 30px; |
| | | justify-content: flex-end; |
| | | |
| | | img { |
| | | width: 70px; |
| | | height: 70px; |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | |
| | | .tip { |
| | | display: flex; |
| | | align-items: flex-end; |
| | | margin-left: 30px; |
| | | font-size: 12px; |
| | | |
| | | span { |
| | | line-height: 20px; |
| | | } |
| | | } |
| | | } |
| | | .optionBtn { |
| | | &::v-deep .el-button { |
| | | padding: 12px 40px; |
| | | } |
| | | .reset { |
| | | border: 1px solid #0079fe; |
| | | color: #0079fe; |
| | | } |
| | | } |
| | | // &::v-deep .el-form-item__label { |
| | | // color: #4b9bb7; |
| | | // } |
| | | |
| | | // &::v-deep .el-input__inner { |
| | | // background-color: #09152f; |
| | | // border: 1px solid #17324c; |
| | | // } |
| | | |
| | | .addPerson { |
| | | display: flex; |
| | | list-style: none; |
| | | padding: 0; |
| | | |
| | | li { |
| | | background-color: #cccccc; |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | color: #fff; |
| | | text-align: center; |
| | | font-size: 30px; |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .el-form-item__content { |
| | | width: 400px; |
| | | |
| | | .el-select { |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .optionHandleSp { |
| | | display: flex; |
| | | |
| | | .areaNumber, |
| | | .moreNumber { |
| | | flex: 1; |
| | | } |
| | | |
| | | .telNumber { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | footer { |
| | | border-top: 1px solid #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | padding-right: 20px; |
| | | } |
| | | } |
| | | </style> |