123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- <template>
- <a-modal
- title="新增公司案例"
- :width="900"
- :visible="visible"
- :confirmLoading="confirmLoading"
- ok-text="保存"
- cancel-text="关闭"
- @ok="handleSubmit"
- @cancel="handleCancel"
- :maskClosable="false"
- >
- <a-spin :spinning="formLoading">
- <a-form :form="form">
- <a-form-item label="标题名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input
- placeholder="请输入标题名称"
- v-decorator="['companyName', {rules: [{required: true, message: '请输入标题名称!'}]}]"
- />
- </a-form-item>
- <a-form-item
- label="描述"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- has-feedback
- >
- <a-textarea :rows="4" :maxLength="30" placeholder="请输入描述" v-decorator="['companyDescribe']">
- <div slot="suffix">ddd</div>
- </a-textarea>
- </a-form-item>
- <a-form-item
- :required="true"
- label="关联案例"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- has-feedback
- >
- <a-select
- style="width: 100%"
- placeholder="请选择产品"
- v-decorator="['companyAssociatedCase', {rules: [{ required: true, message: '请选择产品!' }]}]"
- >
- <a-select-option
- v-for="(item,index) in actionClassData"
- :key="index"
- :value="item"
- >{{ item }}</a-select-option>
- </a-select>
- </a-form-item>
- <a-form-item
- label="默认图片"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- has-feedback
- :required="true"
- >
- <div>
- <upload-component
- ref="upLoadDefaultRef"
- :remarkTxt="remarkTxt"
- @uploadSuccess="uploadSuccessDefault"
- v-decorator="[
- 'companyDefaultImg',
- {
- trigger: 'change',
- rules: [{ validator: checkimageUrl }]
- },
- ]"
- ></upload-component>
- </div>
- </a-form-item>
- <a-form-item
- label="交互图像"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- has-feedback
- :required="true"
- >
- <div>
- <upload-component
- ref="upLoadExchangeRef"
- :remarkTxt="remarkTxt"
- @uploadSuccess="uploadSuccessExchange"
- v-decorator="[
- 'companyExchangeImg',
- {
- trigger: 'change',
- rules: [{ validator: checkimageUrl }]
- },
- ]"
- ></upload-component>
- </div>
- </a-form-item>
- <a-form-item
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- label="排序"
- :hasFeedback="true"
- :required="true"
- >
- <a-input
- placeholder="请输入排序号"
- v-decorator="['companySort', {rules: [{validator: checkSortIndex}]}]"
- />
- </a-form-item>
- <a-form-item label="是否上线" :labelCol="labelCol" :wrapperCol="wrapperCol" :required="true">
- <a-radio-group name="companyIsLine" v-decorator="['companyIsLine',{ initialValue: 1 }]">
- <a-radio :value="1">上线</a-radio>
- <a-radio :value="0">下线</a-radio>
- </a-radio-group>
- </a-form-item>
- </a-form>
- </a-spin>
- </a-modal>
- </template>
- <script>
- import homeApi from '@/api/homeApi'
- import uploadComponent from '@/components/upLoad'
- export default {
- components: { uploadComponent },
- data () {
- return {
- labelCol: {
- xs: { span: 24 },
- sm: { span: 5 }
- },
- wrapperCol: {
- xs: { span: 24 },
- sm: { span: 15 }
- },
- visible: false,
- confirmLoading: false,
- actionClassData: [],
- bannerType: 3,
- formLoading: false,
- form: this.$form.createForm(this),
- remarkTxt: '请上传320×400规格图像'
- }
- },
- mounted () {
- },
- methods: {
- // 初始化方法
- add (record) {
- this.visible = true
- // this.formLoading = true
- // this.getActionClass()
- },
- /**
- * 获取选择器下拉框数据
- */
- getActionClass () {
- homeApi.findArticleContentById().then(res => {
- this.formLoading = false
- if (res.success) {
- this.actionClassData = res.data
- } else {
- this.$message.error('获取选择器下拉框数据')
- }
- })
- },
- handleSubmit () {
- const {
- form: { validateFields }
- } = this
- this.confirmLoading = true
- validateFields((errors, values) => {
- if (!errors) {
- values.companySort = parseInt(values.companySort)
- values.companyDefaultImg = 'group1/M00/00/4C/rBoAbl-iDrOAdZTxAAk_Z73wLB8030.jpg'
- values.companyExchangeImg = 'group1/M00/00/4C/rBoAbl-iDrOAdZTxAAk_Z73wLB8030.jpg'
- homeApi.addCompanyCase(values)
- .then(res => {
- if (res.status === 200) {
- this.$message.success('新增成功')
- this.visible = false
- this.confirmLoading = false
- this.$emit('ok', values)
- this.form.resetFields()
- } else {
- this.$message.error('新增失败:' + res.message)
- }
- })
- .finally(res => {
- this.confirmLoading = false
- })
- } else {
- this.confirmLoading = false
- }
- })
- },
- handleCancel () {
- this.form.resetFields()
- this.visible = false
- },
- uploadSuccessDefault (avg) {
- if (avg.fileList[0]) {
- this.form.setFieldsValue({ 'companyDefaultImg': avg.fileList[0].name })
- this.form.resetFields('companyDefaultImg')
- }
- },
- uploadSuccessExchange (avg) {
- if (avg.fileList[0]) {
- this.form.setFieldsValue({ 'companyExchangeImg': avg.fileList[0].name })
- this.form.resetFields('companyExchangeImg')
- }
- },
- checkimageUrl (rule, value, callback) {
- callback()
- // return false
- // if (value && value.length > 0) {
- // callback()
- // return
- // }
- // var text = '请上传图片'
- // callback(text)
- },
- checkSortIndex (rule, value, callback) {
- var text = '请输入排序号!'
- if (!value) {
- callback(text)
- } else if (/(^[1-9]\d*$)/.test(value)) {
- callback()
- } else {
- text = '请输入数字'
- callback(text)
- }
- }
- }
- }
- </script>
|